全部产品
云市场

将AnalyticDB for MySQL数据导出到MySQL

更新时间:2019-07-24 19:29:39

本文介绍如何通过AnalyticDB for MySQL映射表和INSERT INTO将AnalyticDB for MySQL中的数据导出到云数据库RDS MySQL 版(Relational Database Service,简称RDS)中。

说明:本文中的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数据库中创建courses表,用于存储从AanlyticDB for MySQL中导出的数据。

    1. CREATE TABLE courses (
    2. id bigint NOT NULL,
    3. name varchar(32) NOT NULL,
    4. grade varchar(32) NOT NULL,
    5. submission_date timestamp NOT NULL,
    6. PRIMARY KEY (id)
    7. )
  • 根据AnalyticDB for MySQL快速入门,完成创建实例、设置白名单、创建账号和数据库等准备工作。

    本示例将AnalyticDB for MySQL的adb_demo数据库中的courses表数据导出到RDS for MySQL的test_adb数据库中的courses表。

    1. Create Table courses (
    2. id bigint AUTO_INCREMENT,
    3. name varchar NOT NULL,
    4. grade varchar DEFAULT '三年级',
    5. submission_date timestamp
    6. ) DISTRIBUTE BY HASH(id)
    1. insert into courses (name,submission_date) values("Jams",NOW());

实施步骤

  1. 连接AnalyticDB for MySQL,进入目标数据库。

  2. 通过CREATE TABLE,在AnalyticDB for MySQL的adb_demo数据库中创建外部映射表courses_external_table

    1. CREATE TABLE IF NOT EXISTS courses_external_table(
    2. id bigint NOT NULL,
    3. name varchar(32) NOT NULL,
    4. grade varchar(32) NOT NULL,
    5. submission_date timestamp NOT NULL,
    6. PRIMARY KEY (id)
    7. )
    8. ENGINE='mysql'
    9. TABLE_PROPERTIES='{
    10. "url":"jdbc:mysql://mysql-vpc-address:3306/test_adb",
    11. "tablename":"courses",
    12. "username":"mysql-user-name",
    13. "password":"mysql-user-password"
    14. }'
    参数 说明
    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控制台,在实例基本信息页面查看内网地址。

    查看RDS连接地址

    tablename RDS for MySQL中的源表,本示例为courses表。
    username RDS for MySQL中访问test_adb数据库的账号

    password username对应的密码。
  3. 执行INSERT语句将AnalyticDB for MySQL数据导出到RDS for MySQL。

    1. insert into courses_external_table
    2. select * from courses;