全部產品
Search
文件中心

AnalyticDB:匯出至RDS MySQL

更新時間:Nov 05, 2024

AnalyticDB for MySQL支援通過外表匯入匯出資料。本文介紹如何通過AnalyticDB for MySQL數倉版的外表匯出資料至雲資料庫RDS MySQL。

前提條件

  • RDS MySQL執行個體需與AnalyticDB for MySQL叢集位於同一個VPC,即所在專用網路的VPC ID相同。

    說明
    • 登入RDS控制台,單擊執行個體ID,在資料庫連接頁面的網路類型位置,查看RDS MySQL執行個體所在的VPC ID。

    • 登入AnalyticDB MySQL控制台,在數倉版頁簽單擊叢集ID,在集群資訊頁面的網路資訊位置,查看AnalyticDB for MySQL叢集所在的VPC ID。

  • 需在RDS MySQL執行個體上完成建立資料庫和串連執行個體等操作,並準備好相關測試資料。詳細操作步驟,請參見(廢棄,重新導向至“第一步”)建立資料庫和帳號串連RDS MySQL執行個體

    本文樣本中,測試所用的RDS MySQL目標庫名為test_adb,並在該庫中建立了一張名為courses的目標表,用於儲存從AnalyticDB 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叢集是彈性模式,您需要在集群資訊頁面的網路資訊地區,開啟啟用ENI網絡的開關。啟用ENI網路

操作步驟

  1. 串連目標AnalyticDB for MySQL叢集。詳細操作步驟,請參見串連叢集

  2. 建立來源資料庫。詳細操作步驟,請參見建立資料庫

    本樣本中,AnalyticDB for MySQL叢集的源庫名為adb_demo

  3. 建立源表並插入來源資料。

    使用以下命令在源庫adb_demo中建立一張名為courses的源表,並將該表中的資料匯出至RDS MySQL目標庫test_adbcourses表中。

    CREATE TABLE courses (
    id bigint AUTO_INCREMENT,
    name varchar NOT NULL,
    grade varchar DEFAULT '1st Grade',
    submission_date timestamp
    ) DISTRIBUTED BY HASH(id);

    使用以下命令往源表courses中插入一行資料:

    INSERT INTO courses (name,submission_date) VALUES("Jams",NOW());
  4. 建立外部映射表。

    使用以下命令在源庫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",
    "charset":"utf8"
    }';

    參數

    說明

    ENGINE=’mysql’

    外部表格的儲存引擎說明,本文使用的是MySQL。

    TABLE_PROPERTIES

    AnalyticDB for MySQL訪問RDS MySQL資料的訪問方式。

    url

    RDS MySQL執行個體中的內網地址(即VPC串連地址)和目標庫名(本文樣本中為test_adb),查看RDS地址資訊的方法,請參見查看和管理執行個體串連地址和連接埠

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

    樣本:jdbc:mysql://rm-bp1hem632****.mysql.rds.aliyuncs.com:3306/test_adb

    tablename

    RDS MySQL中目標表名,本文樣本中為courses

    username

    需要訪問RDS MySQL目標庫的帳號。

    password

    以上帳號對應的密碼。

    charset

    MySQL字元集,取值說明:

    • gbk

    • utf8(預設值)

    • utf8mb4

  5. 將源AnalyticDB for MySQL叢集中的資料匯入至目標RDS MySQL執行個體中。

    文法如下:

    REPLACE INTO courses_external_table
    SELECT * FROM courses;

後續步驟

匯入完成後,您可以登入RDS MySQL的目標test_adb庫中,執行如下命令查看並驗證源表資料是否成功匯入至目標courses表中:

SELECT * FROM courses LIMIT 100;