将MySQL数据导入AnalyticDB for MySQL_通过INSERT外表方式导入导出MySQL数据_数据库_数据接入_分析型数据库MySQL版
将MySQL数据导入AnalyticDB for MySQL
本文介绍如何通过AnalyticDB for MySQL映射表和INSERT OVERWRITE INTO或者INSERT INTO将云数据库RDS MySQL 版(Relational Database Service,简称RDS)中的数据导入AnalyticDB for MySQL。
说明:本文中的MySQL数据库可以是RDS for MySQL数据库,或者ECS自建MySQL数据库。
前提条件
根据RDS for MySQL快速入门,准备好测试数据。
注意:RDS for MySQL与AnalyticDB for MySQL必须在同一个VPC下,AnalyticDB for MySQL将通过RDS for MySQL的VPC地址访问RDS for MySQL。
本示例中在RDS for MySQL的
test_adb
数据库中创建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)
)
根据AnalyticDB for MySQL快速入门,完成创建实例、设置白名单、创建账号和数据库等准备工作。
实施步骤
连接AnalyticDB for MySQL,进入目标数据库。
本示例将RDS for MySQL的
test_adb
数据库中的goods
表导入AnalyticDB for MySQL的adb_demo
库中。通过CREATE TABLE,在
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"
}'
参数 说明 ENGINE=’mysql’ 表示该表是外部表,使用的存储引擎是MySQL。 TABLE_PROPERTIES 用于告知AnalyticDB for MySQL如何访问RDS for MySQL中的数据。 url RDS for MySQL中的内网地址,即VPC连接地址。 地址格式为:
"jdbc:mysql://mysql-vpc-address:3306/rds-database-name"
。注意:目前仅支持AnalyticDB for MySQL通过RDS for MySQL的VPC地址访问RDS for MySQL。
登录RDS控制台,在实例基本信息页面查看内网地址。
tablename RDS for MySQL中的源表,本示例为 goods
表。username RDS for MySQL中访问 test_adb
数据库的账号。password username对应的密码。 通过CREATE TABLE,在
adb_demo
数据库中创建目标表mysql_import_test
用于存储从RDS for 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)
执行INSERT语句将RDS for MySQL数据导入AnalyticDB for MySQL。
执行
INSERT INTO
导入数据。insert into mysql_import_test
select * from goods_external_table;
执行
INSERT OVERWRITE INTO
导入数据。insert overwrite into mysql_import_test
select * from goods_external_table
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论