您可以將RDS MySQL的資料匯入AnalyticDB for MySQL,在資料倉儲中完成多來源資料整合和複雜查詢分析,也可以將經過匯總的關鍵計量寫入RDS MySQL。
前提條件
AnalyticDB for MySQL叢集的產品系列為湖倉版。
RDS MySQL執行個體與AnalyticDB for MySQL叢集位於同一VPC。
已在AnalyticDB for MySQL控制台叢集資訊頁面的網路資訊列啟用ENI網路開關。
已將AnalyticDB for MySQL的VPC網段加入RDS MySQL執行個體的白名單中。詳細操作步驟,請參見設定IP白名單。
樣本資料說明
本文樣本的RDS MySQL資料庫名為test_adb
,並在該庫中建立了一張名為person
的表,樣本如下:
CREATE TABLE IF NOT EXISTS test_adb.person(
id int,
name varchar(1023),
age int
);
向person
表中插入資料,樣本如下:
INSERT INTO test_adb.person values
(1, 'james', 10),
(2, 'bond', 20),
(3, 'jack', 30),
(4, 'lucy', 40);
操作步驟
進入SQL開發編輯器。
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在湖倉版頁簽下,單擊目的地組群ID。
在左側導覽列,單擊 。
引擎選擇Xihe,資源群組選擇Interactive型資源群組。
執行以下語句,建立外部資料庫。樣本如下:
CREATE EXTERNAL DATABASE adb_external_db;
執行以下語句,建立外表。樣本如下:
說明AnalyticDB for MySQL外表和RDS MySQL中表的列名稱、數量、順序、欄位類型需要相同。
AnalyticDB for MySQL外表的參數說明,請參見CREATE EXTERNAL TABLE。
CREATE EXTERNAL TABLE IF NOT EXISTS adb_external_db.person ( id int, name varchar(1023), age int )ENGINE = 'MYSQL' TABLE_PROPERTIES = '{ "url":"jdbc:mysql://mysql-address:3306/test_adb", "tablename":"person", "username":"mysql-user-name", "password":"mysql-user-password", "charset":"utf8" }';
查詢資料。
外表建立成功後,您可以在AnalyticDB for MySQL中通過SELECT查詢RDS MySQL中
person
表的資料。SELECT * FROM adb_external_db.person;
返回結果如下:
+------+-------+------+ | id | name | age | +------+-------+------+ | 1 | james | 10 | | 2 | bond | 20 | | 3 | jack | 30 | | 4 | lucy | 40 | +------+-------+------+ 4 rows in set (0.35 sec)
將資料寫入RDS MySQL。
INSERT INTO adb_external_db.person SELECT 5, 'lily', 20;
執行以下語句,建立目標資料庫。
CREATE DATABASE adb_demo;
執行以下語句,在目標資料庫
adb_demo
中建立一張名為mysql_import_test
的目標表,用於儲存從RDS MySQL匯入的資料。CREATE TABLE IF NOT EXISTS mysql_import_test ( id int, name varchar(1023), age int, PRIMARY KEY (id) ) DISTRIBUTED BY HASH(id);
執行以下語句,將RDS MySQL執行個體中的資料匯入至目標AnalyticDB for MySQL叢集中。
INSERT INTO mysql_import_test SELECT * FROM adb_external_db.person;
執行以下語句,查詢AnalyticDB for MySQL表
mysql_import_test
資料。SELECT * FROM mysql_import_test;
返回結果如下:
+------+-------+------+ | id | name | age | +------+-------+------+ | 1 | james | 10 | | 2 | bond | 20 | | 4 | lucy | 40 | | 5 | lily | 20 | | 3 | jack | 30 | +------+-------+------+ 5 rows in set (0.37 sec)