全部產品
Search
文件中心

AnalyticDB:匯出至MaxCompute

更新時間:Jul 27, 2024

本文介紹如何通過INSERT外表方式將AnalyticDB for MySQL數倉版資料匯出到MaxCompute分區表。

前提條件

  • 根據MaxCompute準備工作快速入門準備目標資料表。

    例如通過表操作語句,在MaxCompute中建立以下表。如果您已經有目標資料表,請跳過該步驟。

    說明

    匯出資料到MaxCompute分區表時,需要明確指定待寫入的分區,不支援同時匯出到多個分區,您可以通過執行多個SQL的方式實現將資料匯出到多個MaxCompute分區。MaxCompute最高支援6級分區,其他多級分區的操作步驟類似。

    • 一級分區表

      CREATE TABLE IF NOT EXISTS odps_table
      (
      uid STRING
       )
      PARTITIONED BY (ds STRING)
      LIFECYCLE 3;     
    • 二級分區表

      CREATE TABLE IF NOT EXISTS odps_table
      (
      uid STRING
       )
      PARTITIONED BY (ds STRING,other STRING)
      LIFECYCLE 3;     
  • 根據AnalyticDB MySQL快速入門,完成建立數倉版叢集、設定白名單、建立帳號、建立資料庫和表等準備工作。

  • 如果您的AnalyticDB for MySQL叢集是彈性模式,您需要在集群資訊頁面的網路資訊地區,開啟啟用ENI網絡的開關。啟用ENI網路

匯出到MaxCompute一級分區表

本樣本將AnalyticDB for MySQL數倉版adb_table表中的資料匯出到MaxCompute的odps_table一級分區表中。

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

  2. 建立一張外表映射到MaxCompute的目標資料表。

    CREATE TABLE odps_external_table
    (
    uid string,
    ds string
    )
    ENGINE='ODPS'
    TABLE_PROPERTIES='{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"LTAdjison5uw8chp****",
    "accesskey":"HlClencufhdnmJjBYBJ****",
    "project_name":"test",
    "table_name":"odps_table",
    "partition_column":"ds"
    }'

    參數

    說明

    ENGINE=’ODPS’

    表示該表是外部表格,使用的儲存引擎是MaxCompute。

    TABLE_PROPERTIES

    用於告知AnalyticDB for MySQL如何訪問MaxCompute,並向其寫入資料。

    endpoint

    MaxCompute的EndPoint(網域名稱節點)

    說明

    目前僅支援AnalyticDB for MySQL通過MaxCompute的VPC網路Endpoint訪問MaxCompute。

    如何查看MaxCompute的EndPoint,請參見Endpoint

    accessid

    您在訪問MaxCompute目標資料表時所持有的AccessKey ID。

    accesskey

    您在訪問MaxCompute目標資料表時所持有的AccessKey Secret。

    project_name

    MaxCompute中目標資料表所在的工作空間名。

    table_name

    MaxCompute中目標資料表的表名。

    partition_column

    分區欄位。

  3. 將資料從AnalyticDB for MySQL外表匯出到MaxCompute的資料表一級分區表。

    說明

    adb_table_column不包含partition裡面的欄位。

    insert [overwrite] into odps_external_table partition(ds='20200401')
    select [adb_table_column, ...] from adb_table [where ...]

匯出到MaxCompute二級分區表

本樣本將AnalyticDB for MySQL數倉版adb_table表中的資料匯出到MaxCompute的odps_table二級分區表中。

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

  2. 建立一張外表映射到MaxCompute的資料表。

    CREATE TABLE odps_external_table
    (
    uid string,
    ds string,
    other string)
    ENGINE='ODPS'
    TABLE_PROPERTIES='{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"LTAdjison5uw8chp****",
    "accesskey":"HlClencufhdnmJjBYBJ****",
    "project_name":"test",
    "table_name":"odps_table",
    "partition_column":"ds,other"
    }'
  3. 將資料從AnalyticDB for MySQL外表匯出到MaxCompute資料表二級分區表。

    說明

    adb_table_column不包含partition裡面的欄位。

    insert [overwrite] into odps_external_table partition(ds='20200401',other='hangzhou')
    select [adb_table_column, ...] from adb_table [where ...]