すべてのプロダクト
Search
ドキュメントセンター

Hologres:MaxCompute Delta テーブルへのアクセス

最終更新日:Mar 11, 2026

このトピックでは、Hologres から MaxCompute Delta テーブルにアクセスする方法について説明します。

機能紹介

Hologres V3.0.38 以降、MaxCompute Delta テーブルからデータを読み取ることができます。 Delta テーブルは、MaxCompute の増分データ用のテーブル形式です。 数分単位のデータインポートをサポートし、基盤となるファイル形式として AliORC を使用し、UPSERT セマンティクスをサポートし、Change Data Capture (CDC) 形式で増分データの読み書きができます。 詳細については、「用語」をご参照ください。

前提条件

注意事項

  • Hologres は、MaxCompute Delta テーブルの最新のスナップショットの読み取りのみをサポートします。

  • Hologres から MaxCompute Delta テーブルへのデータの書き戻しはサポートされていません。

  • MaxCompute Delta テーブルにアクセスするには、GUC パラメーターを設定する必要があります。 このパラメーターはセッションレベルで設定することを推奨します。 MaxCompute Delta テーブルをクエリする前に、次のコマンドを実行してください:

    SET hg_experimental_external_catalog_routing = 'odps:common_table';

操作手順

MaxCompute での Delta テーブルの作成

次のいずれかのメソッドを使用してテーブルを作成できます:

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 は、次の 2 つのデータ書き込みメソッドをサポートしています:

このトピックでは、バッチでのデータ書き込みを例として使用します。 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 は、外部データソースマッピングを作成するための 2 つのメソッドをサポートしています:

  • 外部データベースを使用して、指定した MaxCompute プロジェクト内のすべてのテーブルをマッピングします。 詳細については、「CREATE EXTERNAL DATABASE」をご参照ください。

  • 外部テーブルを使用して、指定したスキーマとテーブルのマッピングをカスタマイズします。 詳細については、「IMPORT FOREIGN SCHEMA」および「CREATE FOREIGN TABLE」をご参照ください。

このトピックでは、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';
  • 外部データベース内のすべてのスキーマをクエリします。

    SELECT * FROM hologres.hg_external_schemas('ext_database_mc');
  • 外部データベースのデフォルトスキーマ内のすべてのテーブルをクエリします。

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

Hologres からの Delta テーブルのクエリ

MaxCompute Delta テーブルのデータをクエリするには、次の SQL コマンドを実行します。

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