1. 首先创建源库和源表,登录阿里云控制台创建源库名为test_adb后,通过DMS登录数据库RDS MySQL,并在该库中创建了一张名为goods的源表,建表语句如下:
CREATE TABLE goods ( goods_id bigint(20) NOT NULL, price double NOT NULL, class bigint(20) NOT NULL, name varchar(32) NOT NULL, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (goods_id) );
2. 连接目标AnalyticDB MySQL集群。
3. 创建目标数据库。
4. 创建外部映射表,使用以下命令在目标库adb_demo中创建一张名为goods_external_table的外部映射表:
CREATE TABLE IF NOT EXISTS goods_external_table ( goods_id bigint(20) NOT NULL, price double NOT NULL, class bigint(20) NOT NULL, name varchar(32) NOT NULL, update_time timestamp, PRIMARY KEY (goods_id) ) ENGINE='mysql' TABLE_PROPERTIES='{ "url":"jdbc:mysql://mysql-vpc-address:3306/test_adb", "tablename":"goods", "username":"mysql-user-name", "password":"mysql-user-password" }';CREATE TABLE goods ( goods_id bigint(20) NOT NULL, price double NOT NULL, class bigint(20) NOT NULL, name varchar(32) NOT NULL, update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (goods_id) );
参数说明
• ENGINE=’mysql’:外部表的存储引擎说明,本文使用的是MySQL。
• TABLE_PROPERTIES:AnalyticDB MySQL访问RDS MySQL数据的访问方式。
• url:RDS MySQL实例中的内网地址(即VPC连接地址)和源库名(本文示例中为test_adb)。
RDS地址信息的查看方法,请参见查看或修改内外网地址和端口。
格式:"jdbc:mysql://mysql-vpc-address:3306/rds-database-name"。
例:jdbc:mysql://rm-****************.mysql.rds.aliyuncs.com:3306/test_adb。
• tablename:RDS MySQL中源表名,本文示例中为goods。
• username:需要访问RDS MySQL源库的账号。
• password:以上账号对应的密码。
5. 创建目标表,使用以下命令在目标数据库adb_demo中创建一张名为mysql_import_test的目标表,用于存储从RDS MySQL导入的数据。
CREATE TABLE IF NOT EXISTS mysql_import_test ( goods_id bigint(20) NOT NULL, price double NOT NULL, class bigint(20) NOT NULL, name varchar(32) NOT NULL, update_time timestamp, PRIMARY KEY (goods_id) ) DISTRIBUTED BY HASH(goods_id);
6. 将源RDS MySQL实例中的数据导入至目标AnalyticDB MySQL集群中。
REPLACE INTO mysql_import_test SELECT * FROM goods_external_table;
7. 导入完成后,可以登录AnalyticDB MySQL的目标库adb_demo中,执行如下命令查看并验证源表数据是否成功导入至目标mysql_import_test表中:
SELECT * FROM mysql_import_test LIMIT 100;