本文介绍如何通过AnalyticDB for MySQL映射表和INSERT INTO将AnalyticDB for MySQL中的数据导出到MySQL中。

前提条件

  • 根据RDS快速入门,完成实例创建、设置白名单、创建账号和数据库、创建表操作。
    说明 RDS MySQL与AnalyticDB for MySQL必须在同一个VPC下,并且您需要将VPC网段所属IP地址加入RDS白名单,AnalyticDB for MySQL将通过RDS MySQL的VPC地址访问RDS MySQL。

    本示例在RDS MySQL的test_adb数据库中创建courses表,用于存储从AanlyticDB for MySQL中导出的数据。

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

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

    create Table courses (
    id bigint AUTO_INCREMENT,
    name varchar NOT NULL,
    grade varchar DEFAULT '三年级',
    submission_date timestamp
    ) DISTRIBUTE BY HASH(id)                   
    insert into courses (name,submission_date) values("Jams",NOW());                   

背景信息

说明 本文中的MySQL数据库可以是RDS MySQL数据库或者ECS自建MySQL数据库。

操作步骤

  1. 连接目标AnalyticDB for MySQL数据库
  2. 通过CREATE TABLE,在AnalyticDB for MySQL的adb_demo数据库中创建外部映射表courses_external_table。
     CREATE TABLE IF NOT EXISTS courses_external_table(
     id bigint NOT NULL,
     name varchar(32) NOT NULL,
     grade varchar(32) NOT NULL,
     submission_date  timestamp NOT NULL,
     PRIMARY KEY (id)
     )
    ENGINE='mysql'  
    TABLE_PROPERTIES='{  
    "url":"jdbc:mysql://mysql-vpc-address:3306/test_adb",  
    "tablename":"courses",  
    "username":"mysql-user-name",  
    "password":"mysql-user-password"
    }'                 
    参数 说明
    ENGINE=’mysql’ 表示该表是外部表,使用的存储引擎是MySQL。
    TABLE_PROPERTIES 用于告知AnalyticDB for MySQL如何访问RDS MySQL中的数据。
    url RDS MySQL的内网地址,即VPC连接地址。

    地址格式为:"jdbc:mysql://mysql-vpc-address:3306/rds-database-name"

    说明 目前仅支持AnalyticDB for MySQL通过RDS MySQL的VPC地址访问RDS MySQL。

    登录RDS控制台,在实例基本信息页面查看内网地址。

    tablename RDS MySQL中的源表,本示例为courses表。
    username RDS MySQL中访问test_adb数据库的账号
    password username对应的密码。
  3. 执行INSERT语句将AnalyticDB for MySQL数据导出到RDS MySQL。
    insert into courses_external_table
    select * from courses;