日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

聯合查詢多個MySQL實例

本文檔將以兩個云數據庫RDS MySQL 版(簡稱MySQL)為例,介紹如何通過DLA聯合查詢多個MySQL實例數據。

背景信息

Data Lake Analytics(簡稱DLA) 作為云上數據處理的樞紐,支持通過標準JDBC對單個實例RDSTable Store、OSS、MongoDB中的數據進行查詢和分析。隨著業務的擴展或者數據的劃分,您可能會創建多個RDS、Table Store、OSS等實例存儲數據。在這種多數據源場景下,仍然可以通過DLA實現多個相同類型數據源的聯合查詢。

前提條件

通過DLA聯合查詢兩個MySQL實例數據前,您需要通過以下操作在兩個MySQL實例中準備好測試數據

注意
  • DLA和兩個MySQL所屬地域必須相同,否則無法進行本文檔操作。

  • 由于DLA將通過MySQL的VPC連接MySQL數據庫,建議您創建MySQL實例時,網絡類型選擇VPC。同時,MySQL支持通過切換為專有網絡將經典網絡切換為VPC。

  1. 創建兩個MySQL實例

  2. 設置白名單

  3. 連接實例

  4. 寫入測試數據

    • MySQL實例1中創建orders_db數據庫和order_item表,寫入測試數據:

    	create table orders_db.order_item (
    		id bigint not null primary key auto_increment,
    		prod_id bigint comment '商品ID',
    		prod_cnt int comment '商品數量'
    	);
    	insert into orders_db.order_item values 
    		(1, 1, 2),
    		(2, 2, 3),
    		(3, 3, 4),
    		(4, 2, 5),
    		(5, 1, 6);
    
    • MySQL實例2中創建prod_db數據庫和prod表,寫入測試數據:

    	create table prod_db.prod (
    		id bigint not null primary key auto_increment,
    		prod_name varchar(31) comment '商品名稱'
    	);
    	insert into prod_db.prod values 
    		(1, '鍵盤'),
    		(2, '鼠標'),
    		(3, '顯示器');
    

實施步驟

注意事項

在DLA中創建MySQL數據庫連接前,需要將IP地址段100.104.0.0/16分別加入到MySQL白名單列表中。

由于您的MySQL實例位于VPC內,默認情況下DLA無法訪問該VPC中的資源。為了讓DLA訪問MySQL,需要利用VPC反向訪問技術,即在MySQL白名單中添加100.104.0.0/16IP地址段。

說明

權限聲明:當您在MySQL白名單中添加了100.104.0.0/16IP地址段,即視為您同意我們利用VPC反向訪問技術讀取MySQL數據庫數據。

步驟一:在DLA中創建MySQL數據庫連接

登錄DLA控制臺,單擊左側導航欄的SQL訪問點,單擊登錄到DMS,分別在DLA中創建兩個底層映射到MySQL的數據庫連接。

CREATE SCHEMA dla_orders_db WITH DBPROPERTIES (
  CATALOG = 'mysql', 
  LOCATION = 'jdbc:mysql://rm-******.mysql.rds.aliyuncs.com:3306/orders_db',
  USER = 'mysql_db_user_name',
  PASSWORD = 'mysql_db_password',
  VPC_ID = 'mysql_vpc_id',
  INSTANCE_ID = 'mysql_instance_id'
);
CREATE SCHEMA dla_prod_db WITH DBPROPERTIES (
  CATALOG = 'mysql', 
  LOCATION = 'jdbc:mysql://rm-******.mysql.rds.aliyuncs.com:3306/prod_db',
  USER = 'mysql_db_user_name',
  PASSWORD = 'mysql_db_password',
  VPC_ID = 'mysql_vpc_id',
  INSTANCE_ID = 'mysql_instance_id'
);

參數說明

  • LOCATION:由jdbc:mysql://MySQL內網連接地址:端口號/MySQL數據庫名構成。

    LOCATION

  • USER:連接MySQL數據庫所使用的用戶名。

  • PASSWORD:連接MySQL數據庫所使用的用戶名對應的密碼。

  • VPC_ID:MySQL實例所屬VPC ID。

  • INSTANCE_ID:MySQL實例ID。

    VPC_ID

步驟二:在DLA中創建MySQL外表

針對MySQL中order_item表,本示例在DMS for Data Lake Analytics中創建同名外表order_item:

create external table order_item (
    id bigint,
    prod_id bigint,
    prod_cnt int,
);

針對MySQL中prod表,本示例在DMS for Data Lake Analytics中創建同名外表prod:

create external table prod (
    id bigint,
    prod_name varchar(31)
);

步驟三:通過DLA聯合查詢多個MySQL實例數據

MySQL數據庫連接和外表創建成功后,接下來您可以通過MySQL客戶端或者MySQL命令行工具連接DLA,使用標準SQL語句操作MySQL數據庫數據。

也可以直接在DMS for Data Lake Analytics中操作MySQL數據庫數據。

以下示例通過MySQL命令行工具連接DLA,聯合查詢order_item表和prod表數據:

mysql> select * from dla_orders_db.order_item;
+------+---------+----------+
| id   | prod_id | prod_cnt |
+------+---------+----------+
|    1 |       1 |        2 |
|    2 |       2 |        3 |
|    3 |       3 |        4 |
|    4 |       2 |        5 |
|    5 |       1 |        6 |
+------+---------+----------+
5 rows in set (0.22 sec)

mysql> select * from dla_prod_db.prod;
+------+-----------+
| id   | prod_name |
+------+-----------+
|    1 | 鍵盤      |
|    2 | 鼠標      |
|    3 | 顯示器    |
+------+-----------+
3 rows in set (0.18 sec)

select p.prod_name, sum(o.prod_cnt) cnt
   from dla_prod_db.prod p inner join dla_orders_db.order_item o
    on p.id = o.prod_id
    group by p.prod_name
    order by cnt desc;
+------+-----------+
| prod_name | cnt  |
+-----------+------+
| 鍵盤      |    8 |
| 鼠標      |    8 |
| 顯示器    |    4 |
+-----------+------+
3 rows in set (0.55 sec)

后續操作

我們通過DLA聯合查詢多個MySQL實例數據后,可以通過DLA將查詢到的數據存入阿里云對象存儲服務(Object Storage Service,簡稱 OSS)。OSS是阿里云提供的海量、安全、低成本、高可靠的云存儲服務。后續需要這部分數據時,DLA可以在不移動OSS文件的情況下,直接讀取數據。