全部產品
Search
文件中心

Hologres:Hologres訪問MaxCompute Delta Table

更新時間:Apr 30, 2025

本文為您介紹通過Hologres如何訪問MaxCompute Delta Table。

功能介紹

從Hologres v3.0.38版本開始,支援讀取MaxCompute Delta Table。Delta Table是MaxCompute推出的增量資料表格式,支援分鐘級資料匯入,底層使用AliORC作為檔案格式,支援UPSERT語義,並能夠提供按照CDC(Change Data Capture)格式讀寫增量資料,詳情請參見基本概念

前提條件

注意事項

  • Hologres當前僅支援讀取MaxCompute Delta Table的最新快照。

  • 暫不支援從Hologres側回寫MaxCompute Delta Table。

  • 訪問MaxCompute Delta Table需要添加GUC ,建議Session層級開啟,在查詢MaxCompute Delta Table的SQL前一起執行:

    SET hg_experimental_external_catalog_routing = 'odps:common_table';

使用說明

MaxCompute側建立Delta Table

您可以通過以下方式完成表的建立:

SQL命令如下。

CREATE TABLE IF NOT EXISTS mf_dt (pk BIGINT NOT NULL PRIMARY KEY, 
                  val BIGINT NOT NULL) 
                  PARTITIONED BY (dd STRING, hh STRING) 
                  tblproperties ("transactional"="true");

MaxCompute側寫入資料

MaxCompute目前支援使用以下兩種方式進行資料寫入:

本文以批式寫入資料為例,SQL命令如下。

-- 使用insert into向mf_dt表目標資料分割中追加資料
INSERT INTO TABLE mf_dt PARTITION(dd='01', hh='01') 
            VALUES (3, 30), (4, 4), (5, 5);

-- 向mf_dt表dd='01'和hh='01'的分區中插入測試資料
INSERT OVERWRITE TABLE mf_dt PARTITION (dd='01', hh='01') 
                 VALUES (1, 1), (2, 2), (3, 3);

Hologres側建立外部資料源映射

Hologres支援兩種方式建立外部資料源映射:

本文以CREATE EXTERNAL DATABASE為例,SQL命令如下。

CREATE EXTERNAL DATABASE ext_database_mc WITH 
  metastore_type 'maxcompute'
  mc_project 'mc_3_layer_project' 
  comment 'mc three layer project';
  • 查詢外部資料庫中的所有Schema。

    SELECT * FROM hologres.hg_external_schemas('ext_database_mc');
  • 查詢外部資料庫中default模式下的所有表。

    SELECT * FROM hologres.hg_external_tables('ext_database_mc', 'default');

Hologres側查詢Delta Table

查詢MaxCompute中的Delta Table資料,SQL命令如下。

SET hg_experimental_external_catalog_routing = 'odps:common_table';
SELECT * FROM ext_database_mc.mc_schema_name.mf_dt;