全部產品
Search
文件中心

MaxCompute:建立面向Hologres的中繼資料映射和資料同步

更新時間:Dec 23, 2025

本文介紹如何基於MaxCompute建立面向Hologres的中繼資料映射和資料同步。

背景資訊

傳統數倉架構將上遊即時或批量資料寫入數倉,並使用OLAP引擎分析(圖示上半部分)。但部分情境需要在MaxCompute中讀取Hologres的資料(圖示下半部分),例如:

  • 即時資料透出與歸檔:資料需要從即時資料源快速透出到業務,完成即時數倉業務需求後,資料歸檔到企業級數倉對應分層和主題域。

  • 業務先行與資料迴流:沒有經過數倉統一處理,先滿足業務需求,但是資料集市穩定後,仍然需要迴流到企業級數倉,和DWD、DWS等融合。

這兩種情境的資料訪問方式包括:

  • 數倉模型迭代完善過程中瀏覽即時數倉中的資料。

  • 即時數倉或資料集市的資料定期歸檔入企業級數倉。

  • 企業級數倉加工後的資料寫入Hologres ADS層,供業務消費。

image

功能介紹

本教程構建了從MaxCompute到Hologres的中繼資料映射鏈路,具體功能如下:

  • Schema層級中繼資料映射:可基於RAMRole許可權認證方式,通過外部Schema即時讀取Hologres中繼資料和資料,進行Schema層級的資料訪問。

  • 單表級中繼資料映射:可在Hologres資料目錄中選擇目標表,一鍵自動建立映射Hologres表的MaxCompute外部表格。

  • 資料同步:可將需要周期同步的表一鍵配置為資料同步任務,滿足周期性地向企業級數倉同步的需求。

說明

MaxCompute和Hologres之間的資料類型映射存在差異,Hologres部分資料類型不支援同步至MaxCompute。

資料同步流程

本教程基於使用Flink+Hologres搭建的即時數倉,在Hologres即時數倉的DWD層,增加了MaxCompute映射Hologres Schema、Table,並從DWD層表中同步資料的流程。具體如下:image

支援:

  • 通過External Schema映射Hologres的Schema;

  • 通過External Table映射Hologres的Table;

  • 指定Hologres的表進行一次性或周期性資料同步。

操作步驟

前置準備

  1. 已開通MaxCompute和DataWorks

  2. 已建立MaxCompute專案,並開啟支援Schema層級

  3. 已建立RAM角色並配置信任策略。

  4. 已開通RDS

  5. 已開通Hologres

  6. 已開通Flink

步驟一:建立RDS MySQL並準備資料來源

重要
  • RDS MySQL執行個體Hologres執行個體Flink執行個體必須位於同一地區同一可用性區域,且使用的VPC相同

  • 可以在Realtime Compute控制台,使用網路探測功能檢查Flink工作空間與RDS MySQL、Hologres執行個體之間的網路是否連通。詳情請參見如何進行網路探測

  1. 登入RDS 控制台

    在左側導覽列,選擇執行個體列表,在左上方選擇地區。

  2. 在執行個體列表頁面,單擊建立執行個體

    本樣本中計費方式選擇隨用隨付,引擎選擇MySQL 8.0。

  3. 在執行個體列表頁面,單擊目標執行個體ID/名稱,進入執行個體詳情頁。

  4. 在左側導覽列,單擊帳號管理

    建立資料庫登入帳號。

  5. 在左側導覽列,單擊資料庫管理

    單擊建立資料庫。配置如下參數:

    參數

    是否必填

    說明

    樣本

    資料庫(DB)名稱

    必填

    • 長度為2~64個字元。

    • 以字母開頭,以字母或數字結尾。

    • 由小寫字母、數字、底線或中劃線組成。

    • 資料庫名稱在執行個體內必須是唯一的。

    • 資料庫名稱中如果包含-,則建立出的資料庫檔案夾名字中的-會變成@002d

    hologres_test

    授權帳號

    選填

    此處僅會顯示普通帳號。高許可權帳號擁有所有資料庫的所有許可權,無需授權。

    選擇剛剛建立的登入帳號。

  6. 單擊登入資料庫,在左側導覽列選擇資料庫執行個體,雙擊選中已建立的資料庫,在右側SQLConsole頁面執行下列語句,建立測試表並寫入測試資料。

    CREATE TABLE `orders` (
      order_id bigint not null primary key,
      user_id varchar(50) not null,
      shop_id bigint not null,
      product_id bigint not null,
      buy_fee numeric(20,2) not null,   
      create_time timestamp not null,
      update_time timestamp not null default now(),
      state int not null 
    );
    
    
    CREATE TABLE `orders_pay` (
      pay_id bigint not null primary key,
      order_id bigint not null,
      pay_platform int not null,
      create_time timestamp not null
    );
    
    
    CREATE TABLE `product_catalog` (
      product_id bigint not null primary key,
      catalog_name varchar(50) not null
    );
    
    -- 準備資料
    INSERT INTO product_catalog VALUES(1, 'phone_aaa'),(2, 'phone_bbb'),(3, 'phone_ccc'),(4, 'phone_ddd'),(5, 'phone_eee');
    
    INSERT INTO orders VALUES
    (100001, 'user_001', 12345, 1, 5000.05, '2023-02-15 16:40:56', '2023-02-15 18:42:56', 1),
    (100002, 'user_002', 12346, 2, 4000.04, '2023-02-15 15:40:56', '2023-02-15 18:42:56', 1),
    (100003, 'user_003', 12347, 3, 3000.03, '2023-02-15 14:40:56', '2023-02-15 18:42:56', 1),
    (100004, 'user_001', 12347, 4, 2000.02, '2023-02-15 13:40:56', '2023-02-15 18:42:56', 1),
    (100005, 'user_002', 12348, 5, 1000.01, '2023-02-15 12:40:56', '2023-02-15 18:42:56', 1),
    (100006, 'user_001', 12348, 1, 1000.01, '2023-02-15 11:40:56', '2023-02-15 18:42:56', 1),
    (100007, 'user_003', 12347, 4, 2000.02, '2023-02-15 10:40:56', '2023-02-15 18:42:56', 1);
    
    INSERT INTO orders_pay VALUES
    (2001, 100001, 1, '2023-02-15 17:40:56'),
    (2002, 100002, 1, '2023-02-15 17:40:56'),
    (2003, 100003, 0, '2023-02-15 17:40:56'),
    (2004, 100004, 0, '2023-02-15 17:40:56'),
    (2005, 100005, 0, '2023-02-15 18:40:56'),
    (2006, 100006, 0, '2023-02-15 18:40:56'),
    (2007, 100007, 0, '2023-02-15 18:40:56');

步驟二:建立Hologres執行個體並建立資料庫

  1. 登入Hologres管理主控台,在左上方選擇地區。

    如果沒有執行個體,先購買Hologres

    • 商品類型選擇獨享執行個體(隨用隨付)

    • 執行個體類型選擇計算群組型

    • 計算群組預留計算資源選擇64 CU

  2. 執行個體列表頁面,單擊目標執行個體名稱。

  3. 在執行個體詳情頁面,單擊登入執行個體

    單擊上方中繼資料管理頁簽。

  4. 單擊建立資料庫,在彈出的對話方塊中,填寫資料庫名稱,其他參數保持預設。

    樣本Hologres資料庫名為holodb

  5. 單擊上面資訊安全中心頁簽。

    在左側導覽列選擇使用者管理

    • AliyunODPSDefaultRole角色授予SuperUser許可權,以確保其具備Hologres的表操作許可權。具體操作請參見使用者管理

    • 為該RAM角色授予執行個體的Developer許可權(僅支援SPM模式)。操作詳情請參見DB管理

步驟三:在Flink中建立RDS MySQL整庫同步任務-ODS層表

  1. 在Flink中建立RDS MySQL整庫同步任務,將RDS MySQL中的資料同步至Hologres資料庫holodbpublic Schema下,並使用Hologres的預設計算群組init_warehouse查詢ODS資料。

  2. MySQL需要提前開啟Binlog,可以在RDS MySQL的資料庫中執行show variables like "log_bin";命令,查看Binlog是否開啟。詳情請參見MySQL伺服器配置要求

  3. 建立Session叢集。

    1. 登入Flink控制台,在左上方選擇地區。

    2. 單擊目標工作空間名稱,然後在左側導覽列,選擇營運中心 > Session 管理

    3. 單擊建立Session叢集。

  4. 建立Hologres Catalog

    1. 單擊目標工作空間名稱,然後在左側導覽列,選擇資料管理

    2. 在右側Catalog列表介面,單擊建立Catalog。在彈出的建立 Catalog對話方塊裡,選擇Hologres,單擊下一步 並配置如下參數:

      參數

      是否必填

      說明

      catalog name

      必填

      自訂MySQL Catalog名稱。

      endpoint

      必填

      endpoint在Hologres執行個體詳情頁面,網路資訊部分指定VPC處擷取:hg****cn-cn-2****f-cn-shenzhen-vpc-st.hologres.aliyuncs.com:80

      dbname

      必填

      Hologres資料庫名

      username

      必填

      Access Key ID。

      password

      必填

      Access Key Secret。

  5. 建立MySQL Catalog

    在右側Catalog列表 介面,單擊建立Catalog 。在彈出的建立 Catalog 對話方塊裡,選擇MySQL,單擊下一步 並配置如下參數:

    參數

    是否必填

    說明

    catalog name

    必填

    自訂MySQL Catalog名稱。

    hostname

    必填

    • MySQL資料庫的IP地址或者Hostname。

    • 可登入RDS MySQL控制台,在資料庫執行個體詳情頁,單擊資料庫連接查看資料庫內網地址外網地址內網連接埠

    • 跨VPC公網訪問時需要打通網路,詳情請參見網路連通性

    port

    預設

    串連到伺服器的連接埠,預設為3306。

    default database

    必填

    預設資料庫名稱。

    username

    必填

    串連MySQL資料庫伺服器時使用的使用者名稱。可登入RDS MySQL控制台,在資料庫執行個體詳情頁,單擊帳號管理查看。

    password

    必填

    串連MySQL資料庫伺服器時使用的密碼。可登入RDS MySQL控制台,在資料庫執行個體詳情頁,單擊帳號管理查看。

  6. 通過Flink將RDS MySQL資料同步至Hologres中

    1. 單擊目標工作空間名稱,然後在左側導覽列,選擇資料開發 > ETL

    2. 作業草稿頁簽,單擊image,建立檔案夾。

    3. 右鍵檔案夾,選擇建立流作業,在彈出的新增作業草稿對話方塊,填寫檔案名稱並選擇引擎版本

      CREATE DATABASE IF NOT EXISTS <your hologres catalog>.<hologres database name>    -- 建立catalog時設定了table_property.binlog.level參數,因此通過CDAS建立的所有表都開啟了binlog。
      AS DATABASE <your mysql catalog>.<mysql database name> INCLUDING all tables -- 可以根據需要選擇上遊資料庫需要入倉的表。
      /*+ OPTIONS('server-id'='8001-8004') */ ;   -- 指定mysql-cdc執行個體server-id範圍。

      單擊右上方部署

    4. 作業營運頁面,單擊目標作業名稱,進入作業部署詳情頁面。

    5. 在目標作業部署詳情頁右上方,單擊啟動,選擇無狀態啟動後,單擊啟動

    說明
    • 本樣本預設將資料同步到Hologres資料庫的public Schema下。也可以將資料同步到Hologres目標庫的指定Schema中,詳情請參見作為CDAS的目標端Catalog,指定後使用Catalog時的表名格式也會發生變化,詳情請參見使用Hologres Catalog

    • 如果源表的資料結構發生變化,則需要等待源表的資料出現變更(刪除、插入、更新),結果表的資料結構才會看到變化。

步驟四:向Hologres載入資料

Table Group是Hologres中資料的載體。

使用計算群組init_warehouse查詢holodb資料庫中Table Group(本樣本為order_dw_tg_default)的資料時,需要為計算群組載入Table Group,然後才可以使用init_warehouse計算群組查詢及寫入資料。

在HoloWeb開發頁單擊SQL編輯器,確認執行個體名和資料庫名稱後,執行如下命令。

更多詳情請參見建立新計算群組執行個體

  1. 登入Hologres管理主控台,在左上方選擇地區。

  2. 在左側導覽列選擇執行個體列表

    執行個體列表頁面,單擊目標執行個體名稱。

  3. 在執行個體詳情頁面,單擊登入執行個體

  4. 單擊上方SQL編輯器頁簽。

    確認執行個體名和資料庫名稱後,執行如下命令。載入後,可以查看到計算資源群組已經載入了holodb_tg_default Table Group的資料。

    --查看當前資料庫有哪些Table Group
    SELECT tablegroup_name FROM hologres.hg_table_group_properties GROUP BY tablegroup_name;
    
    --為計算群組載入Table Group
    CALL hg_table_group_load_to_warehouse ('<hologres database name>.<table group name>', '<your Virtual Warehouse name>', 1);
    
    --查看計算群組載入Table Group的情況
    SELECT * FROM hologres.hg_warehouse_table_groups;
  5. 執行如下命令,查看MySQL同步到Hologres的3張表資料。

    ---查orders中的資料。
    SELECT * FROM orders;
    
    ---查orders_pay中的資料。
    SELECT * FROM orders_pay;
    
    ---查product_catalog中的資料。
    SELECT * FROM product_catalog;

步驟五:在Flink中建立DWD層表

構建DWD層用到了Hologres連接器特有的部分列更新能力,可以使用INSERT DML方便地表達部分列更新的語義。作業中需要對不同的維表進行查詢,是基於Hologres行存以及行列共存表提供的高效能的點查能力。同時,Hologres資源強隔離的架構,可以保證寫入、讀取、分析等作業之間互不干擾。

通過Flink Catalog功能在Hologres中建立DWD層的寬表dwd_orders

  1. 登入Flink控制台,在左上方選擇地區。

  2. 單擊目標工作空間名稱,然後在左側導覽列,選擇資料開發 > 資料查詢

  3. 查詢指令碼頁簽,單擊image,建立查詢指令碼。

    輸入如下代碼後,單擊右上方運行

    -- 寬表欄位要nullable,因為不同的流寫入到同一張結果表,每一列都可能出現null的情況。
    CREATE TABLE <hologres catalog>.<hologres database>.dwd_orders (
      order_id bigint not null,
      order_user_id string,
      order_shop_id bigint,
      order_product_id bigint,
      order_product_catalog_name string,
      order_fee numeric(20,2),
      order_create_time timestamp,
      order_update_time timestamp,
      order_state int,
      pay_id bigint,
      pay_platform int comment 'platform 0: phone, 1: pc', 
      pay_create_time timestamp,
      PRIMARY KEY(order_id) NOT ENFORCED
    );
    
    -- 支援通過catalog修改Hologres物理表屬性。
    ALTER TABLE <hologres catalog>.<hologres database>.dwd_orders SET (
      'table_property.binlog.ttl' = '604800' --修改binlog的逾時時間為一周。
    );
  4. 實現即時消費ODS層ordersorders_pay表的binlog。

    1. 單擊目標工作空間名稱,然後在左側導覽列,選擇資料開發 > ETL

    2. 建立名為DWD的SQL流作業,並將如下代碼拷貝到SQL編輯器後,部署並啟動作業。orders會與product_catalog維表關聯,並將最終結果寫入dwd_orders表中,實現資料的即時打寬。

      BEGIN STATEMENT SET;
      
      INSERT INTO <your hologres catalog name>.<your hologres database name>.dwd_orders 
       (
         order_id,
         order_user_id,
         order_shop_id,
         order_product_id,
         order_fee,
         order_create_time,
         order_update_time,
         order_state,
         order_product_catalog_name
       ) SELECT o.*, dim.catalog_name 
         FROM <your hologres catalog name>.<your hologres database name>.orders as o
         LEFT JOIN <your hologres catalog name>.<your hologres database name>.product_catalog FOR SYSTEM_TIME AS OF proctime() AS dim
         ON o.product_id = dim.product_id;
      
      INSERT INTO <your hologres catalog name>.<your hologres database name>.dwd_orders 
        (pay_id, order_id, pay_platform, pay_create_time)
         SELECT * FROM <your hologres catalog name>.<your hologres database name>.orders_pay;
      
      END;
    3. 查看寬表dwd_orders資料。

      HoloWeb開發頁面串連Hologres執行個體並登入目標資料庫後,在SQL編輯器上執行如下命令。

      SELECT * FROM dwd_orders;

      運行結果:

      +------------+---------------+---------------+------------------+----------------------------+------------+-------------------+-------------------+-------------+------------+--------------+-----------------+
      | order_id   | order_user_id | order_shop_id | order_product_id | order_product_catalog_name | order_fee  | order_create_time | order_update_time | order_state | pay_id     | pay_platform | pay_create_time | 
      +------------+---------------+---------------+------------------+----------------------------+------------+-------------------+-------------------+-------------+------------+--------------+-----------------+
      | 100002     | user_002      | 12346         | 2                | phone_bbb                  | 4000.04    | 2023-02-15 15:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 100004     | user_001      | 12347         | 4                | phone_ddd                  | 2000.02    | 2023-02-15 13:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 11111      | user_test     | 12346         | 2                | phone_bbb                  | 4000.04    | 2025-12-15 00:00:00 | 2025-12-15 00:00:00 | 1           | NULL       | NULL         | NULL            | 
      | 100001     | user_001      | 12345         | 1                | phone_aaa                  | 5000.05    | 2023-02-15 16:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 100007     | user_003      | 12347         | 4                | phone_ddd                  | 2000.02    | 2023-02-15 10:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 100006     | user_001      | 12348         | 1                | phone_aaa                  | 1000.01    | 2023-02-15 11:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 100005     | user_002      | 12348         | 5                | phone_eee                  | 1000.01    | 2023-02-15 12:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      | 100003     | user_003      | 12347         | 3                | phone_ccc                  | 3000.03    | 2023-02-15 14:40:56 | 2023-02-15 18:42:56 | 1           | NULL       | NULL         | NULL            | 
      +------------+---------------+---------------+------------------+----------------------------+------------+-------------------+-------------------+-------------+------------+--------------+-----------------+
  1. dw中分別綁定MC專案和holo執行個體

  2. 回到mc建立外部schema

步驟六:在DataWorks中綁定MaxCompute和Hologres計算資源

  1. 登入DataWorks控制台,在左上方選擇地區。

  2. 建立新版DataWorks工作空間。本教程中工作空間名稱設定為Hologres_DW_TEST

  3. 工作空间列表頁面,單擊目標工作空間名稱。

  4. 空间详情頁面,單擊左側導覽列计算资源

    计算资源頁面,單擊綁定計算資源,分別選擇MaxComputeHologres

    填寫基本資料,具體操作請參見綁定計算資源

  5. 添加及查看MaxCompute專案和Hologres執行個體。

    1. 在左側導覽列選擇数据开发与运维 > 数据开发

    2. 选择工作空间,單擊進入Data Studio

    3. 添加及查看MaxCompute專案和Hologres執行個體。

步驟七:建立映射Hologres Schema的MaxCompute外部Schema

通過外部Schema映射Hologres表,無需在MaxCompute內建立含有DDL元資訊的表,Hologres源端表結構變化或資料變化,中繼資料和資料都會在MaxCompute即時感知並查詢擷取。

  1. 登入MaxCompute控制台,在左上方選擇地區。

  2. 在左側導覽列,選擇管理配置 > 外部数据源 。

  3. 外部数据源頁面,單擊创建外部数据源

  4. 在彈出的新增外部数据源對話方塊,根據介面提示配置相關參數。參數說明如下:

    參數

    是否必填

    說明

    外部数据源类型

    必填

    選擇Hologres

    外部数据源名称

    必填

    可自訂命名。命名規則如下:

    • 以字母開頭,且只能包含小寫字母、底線和數字。

    • 不能超過128個字元。

    例如holo_external_source

    外部数据源描述

    選填

    根據需要填寫。

    连接方式

    必填

    預設為经典网络访问(内网)

    InstanceID

    必填

    選擇當前地區下需要串連的Hologres執行個體。

    Host

    必填

    系統預設產生。

    Port

    必填

    系統預設產生。

    DBNAME

    必填

    串連的Hologres資料庫名稱。

    認證和鑒權

    必填

    • 云RAM角色

    • 任務執行者身份:Hologres外部項目所需外部資料源需要配置為任務執行者身份的認證模式。

    RoleARN

    必填

    RAM角色的ARN資訊。

    1. 登入RAM控制台

    2. 在左側導覽列選擇身份管理 > 角色

    3. 基礎資訊地區,可以擷取ARN資訊。

    樣本:acs:ram::124****:role/aliyunodpsdefaultrole

    关联服务角色

    必填

    若選擇任務執行者身份关联服务角色acs:ram::124****:role/aliyunserviceroleformaxcomputeidentitymgmt

    外部数据源补充属性

    選填

    特殊聲明的外部資料源補充屬性。指定後,使用此外部資料源的任務可以按照參數定義的行為訪問源系統。

    說明

    支援的具體參數請關注後續官網文檔更新說明,具體參數將隨產品能力演化逐步放開。

步驟八:在DataWorks中映射Hologres執行個體和MaxCompute的Schema

  1. 登入DataWorks控制台,在左上方選擇地區。

  2. 在左側導覽列選擇数据开发与运维 > 数据开发

  3. 选择工作空间,單擊進入Data Studio

  4. Data Studio頁面,單擊左側導覽列的image表徵圖,進入資料目錄

  5. 展開Hologres資料目錄,按右鍵目標執行個體的Schema(本教程中為public),選擇中繼資料映射至 MaxCompute

    中繼資料映射至 MaxCompute頁面中配置Hologres源端和MaxCompute目標端的參數。

    本教程中重點參數配置如下,其餘參數保持預設即可。

    參數名

    描述

    專案尋找方式

    選擇來自 DataWorks 資料來源

    資料來源

    選擇已綁定至DataWorks的MaxCompute計算資源名稱。

    外部Schema名稱

    指定源端Hologres Schema下的中繼資料映射至目標MaxCompute的外部Schema名稱。

    本教程中配置為public

    外部資料源

    選擇MaxCompute中已建立的Hologres聯邦資料來源名稱。

    本教程中為holo_external_source

  6. 單擊頁面左上方的運行

    運行成功後,可看到和Hologres Schema(public)同名的MaxCompute外部Schema。

  7. 可直接瀏覽Hologres中的表,並在MaxCompute中使用如下SQL命令查詢資料。

    SET odps.namespace.schema=true;
    SELECT * FROM public.dwd_orders;
說明
  • 若Schema級映射運行成功,但在資料目錄的MaxCompute目錄下無法顯示映射後的表名,顯示查詢失敗,請確認建立的RAM角色許可權是否配置正確。詳情請參見建立RAM角色

  • 不同於外部Schema,外部表格需要將Hologres表在MaxCompute內建為外部表格。外部表格支援RAMRole和雙簽名兩種認證方式:

    • RAMRole:支援跨帳號角色扮演。您需在Hologres側,完成以下操作:

      • 將RAMRole添加為Hologres執行個體的使用者,詳情請參見使用者管理

      • 為該RAM角色授予執行個體的Developer許可權(僅支援SPM模式),詳情請參見DB管理

    • 雙簽名:使用當前執行任務的使用者身份鑒權。即目前使用者在Hologres中擁有哪些表的許可權,通過MaxCompute外部表格,也可使用此身份訪問Hologres資料。詳情請參見Hologres外部表格

步驟九:建立映射Hologres Table的MaxCompute外部表格

可挑選部分或全部欄位進行映射,映射規則請參見參數說明tblproperties參數部分。

  1. 登入DataWorks控制台,在左上方選擇地區。

  2. 在左側導覽列選擇数据开发与运维 > 数据开发

  3. 选择工作空间,單擊進入Data Studio

  4. Data Studio頁面,單擊左側導覽列的image表徵圖,進入資料目錄

  5. 展開Hologres資料目錄,按右鍵目標執行個體public Schema下的dwd_orders表,選擇中繼資料映射至 MaxCompute

  6. 中繼資料映射至 MaxCompute頁面中配置Hologres源端和MaxCompute目標端的參數。

    本教程中重點參數配置如下,其餘參數保持預設即可。參數詳情請參見單表級中繼資料映射

    參數名

    描述

    執行個體尋找方式

    選擇來自 DataWorks 資料來源

    資料來源

    選擇已綁定至DataWorks的MaxCompute資料來源名稱。

    Schema

    指定源端Hologres Schema下的中繼資料映射至目標MaxCompute的外部Schema名稱。

    本教程中配置為default

    External Table

    • 指定MaxCompute中新建立的外表名稱,源端表資料將會被映射至此表中,預設與Hologres中表名稱保持一致。

    • 建立外表為一次性動作,不會自動重新整理中繼資料,如需重新整理中繼資料,需要刪除當前外表並重新手動建立中繼資料映射。

    MaxCompute 外表許可權

    • 選擇雙簽名

    • 選擇RamRole方式時,需要在Hologres側添加使用者,並DB授權。

    生命週期

    設定表的生命週期。

  7. 單擊頁面左上方的運行

    運行成功後,即可在左側MaxCompute Schema下顯示建立的外部表格。

  8. 使用如下語句在MaxCompute中查詢該外部表格的資料。

    SET odps.namespace.schema=true;
    SELECT * FROM dwd_orders;

步驟十:建立同步Hologres Table的周期任務

若需要周期性地將Hologres即時數倉中的DWD表資料歸檔到MaxCompute雲數倉的一張內部表中,可以使用資料同步任務,並配置周期調度實現。

  1. 登入DataWorks控制台,在左上方選擇地區。

  2. 在左側導覽列選擇数据开发与运维 > 数据开发

  3. 选择工作空间,單擊進入Data Studio

  4. Data Studio頁面,單擊左側導覽列的image表徵圖,進入資料開發頁面,並建立專案目錄

  5. Data Studio頁面,單擊左側導覽列的image表徵圖,進入資料目錄

  6. 展開Hologres資料目錄,按右鍵目標執行個體public Schema下的dwd_orders表,選擇資料同步至 MaxCompute

  7. 中繼資料映射至 MaxCompute頁面中配置Hologres源端和MaxCompute目標端的參數。

    本教程中重點參數配置如下,其餘參數保持預設即可。參數詳情請參見單表級中繼資料映射

  8. 建立節點彈框中,為雲數倉內的表命名dwd_holo_orders,單擊確認。進入同步Hologres資料至MaxCompute的配置頁面,配置Hologres源端和MaxCompute目標端的參數。

    本教程中重點參數配置如下,更多參數說明請參見配置同步節點

    參數名

    描述

    資料來源

    選擇已綁定至DataWorks的Hologres資料來源名稱。

    Schema

    選擇想要儲存的Schema。

    Table

    自訂MaxCompute內部表名稱。

    本教程中配置為dwd_holo_orders

    生命週期

    設定表的生命週期。

    匯入方式

    選擇資料寫入MaxCompute內表的方式:

    • 覆蓋:需要刪除原有資料,將新資料寫入到目標表時,選擇覆蓋寫入。

    • 追加:需要保留原有資料,將新資料追加到目標表時,選擇追加寫入。

    訪問 Hologres 許可權

    根據實際情況選擇以下方式訪問Hologres執行個體:

    • 雙簽名訪問方式:通過當前身份進行Hologres許可權校正。

      確保在MaxCompute專案下,擁有MaxCompute表讀取許可權的同時,也需要有該MaxCompute表對應的Hologres源表許可權。

    • RamRole訪問方式:通過指定RAM角色進行訪問身份校正。

      為RAM使用者授權AliyunSTSAssumeRoleAccess權限原則。詳情請參見RAM角色授權模式。授權完成後,在RamRole中配置指定的RAM角色。

  9. 單擊頁面右側的調度配置,在調度配置頁面中配置工作流程和調度周期,操作詳情請參見節點調度配置

  10. 單擊頁面左上方的運行

    運行成功後,即可在左側MaxCompute下顯示建立的內部表,您可使用如下SQL語句在MaxCompute中查詢該外部表格的資料。

    SET odps.namespace.schema=true;
    SELECT * FROM default.dwd_holo_orders;