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

Hologres:Common Table パスウェイを介した MaxCompute へのアクセス

最終更新日:Jan 16, 2026

Hologres V3.0.38 以降のバージョンでは、MaxCompute へのアクセスを高速化するためのアップグレードされたパスウェイである Common Table パスウェイがサポートされています。 このトピックでは、Common Table パスウェイを使用して MaxCompute にアクセスする方法について説明します。

特長

Common Table パスウェイは、C++ ネイティブリーダーを使用して MaxCompute からデータを読み取ります。 既存の SQE/HQE パスウェイに比べて、次の利点があります。

説明

サポート済み は機能がサポートされていることを示します。 サポート対象外 は機能がサポートされていないことを示します。

比較項目

SQE/HQE パスウェイ

Common Table パスウェイ

パフォーマンス

強い

非常に高い。 パフォーマンスは SQE/HQE パスウェイと比較して 33% 向上し、オープンストレージ Storage API を使用したデータ読み取りと比較して 200% 以上向上します。

動的データマスキングテーブル

ルールを再設定する必要があります。

MaxCompute で設定されたデータマスキングルールを継承します。 クエリされたデータは、MaxCompute クエリの結果と一致します。

スキーマエボリューション

サポート対象外。直接ファイル読み取りをサポートしていません。 パフォーマンスはわずかに低下します。

サポートするのは、高性能なダイレクトファイル読み取りです。

保存時の暗号化が有効なテーブル

  • サポート済み。KMS キーによるテーブル暗号化をサポートします。

  • サポート対象外。デフォルトキーで暗号化されたテーブルはサポートしていません。

  • サポート済み。KMS キーで暗号化されたテーブルをサポートします。

  • サポート済み。デフォルトキーで暗号化されたテーブルをサポートします。

    説明

    Hologres V3.2 以降が必要です。

ACID 1.0 テーブル

サポート対象外

サポート済み

PK Delta Table

サポート対象外

サポート済み

Append Delta Table

サポート対象外

サポート済み

権限

  • Common Table パスウェイを介して MaxCompute 外部テーブルにアクセスするには、次の表に示す権限が必要です。 MaxCompute プロジェクトおよびテーブルにアクセスする権限をユーザーに付与する方法については、「コマンドを使用したユーザー権限の管理」をご参照ください。

    MaxCompute でのデータクエリの権限と整合させるため、Hologres V4.0 以降のバージョンでは権限検証が変更されました。

    MaxCompute 外部テーブルの作成方法

    操作

    必要な MaxCompute 権限 (Hologres V3.0、V3.1、V3.2)

    必要な MaxCompute 権限 (V4.0 以降)

    外部テーブルメソッド

    `IMPORT FOREIGN SCHEMA` を使用した MaxCompute 外部テーブルの一括作成

    Describe, List

    Describe, List

    データのクエリ

    Describe, Select

    Select

    外部データベースメソッド

    外部テーブルのメタデータの表示

    Describe

    Describe

    データのクエリ

    Describe, Select

    Select

  • 現在、Hologres は MaxCompute Delta Table の最新のスナップショットの読み取りのみをサポートしています。

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

機能の更新

機能の説明

サポートされるバージョン

MaxCompute の JSON データ型の読み取りをサポート

>=4.1.1

MaxCompute Append Delta Table のクエリをサポート

>= 3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

`spillRead` を使用した MaxCompute Delta Table のクエリをサポートします。 これにより、スピルされないファイルが多すぎる場合に発生するエラーが解決されます。

MaxCompute csdk open reader failed: storage/formats/orcfile/change_log_reader_util.cpp(255): InvalidArgument: ODPS-0010000:InvalidArgument:Need spill read but TmpDir or TmpCapability no specified.

>= 3.0.41

>= 3.1.10

>= 3.2.0

>= 4.0.0

デフォルト値を持つ列がある MaxCompute テーブルの読み取りをサポート

>=3.0.40

>= 3.1.10

>=3.2.0

>=4.0.0

Auto Split Size をサポートします。 この機能は、インスタンスタイプに基づいて分割サイズを自動的に決定します。 詳細については、以降のセクションをご参照ください。

>=3.1.33

>=3.2.0

>=4.0.0

TIMESTAMP_NTZ 型のデータのクエリをサポート

>= 3.0.41

>= 3.1.10

>=3.2.0

>=4.0.0

Delta Table のクラスタリングキーやプライマリキーなどの属性に対する等価フィルターの述語プッシュダウンをサポートします。 これにより、フィルター効果とクエリパフォーマンスが向上します。

>= 4.0.6

有効化方法

シナリオに基づいてパスウェイを有効にできます。

  • セッションレベル

    -- セッションレベルでパスウェイを有効にします。 この文は、クエリまたは DML 文と一緒に実行する必要があります。
    SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • データベースレベル

    -- データベースレベルでパスウェイを有効にします。
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';
  • インスタンスレベル

    -- インスタンスレベルでパスウェイを有効にします。
    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:common_table,dlf:hqe';

シャットダウン方法

  • セッションレベル

    -- セッションレベルでパスウェイを無効にします。 この文は、クエリまたは DML 文と一緒に実行する必要があります。
    SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
  • データベースレベル

    -- データベースレベルで無効化します。
    ALTER DATABASE <database name> SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';
  • インスタンスレベル

    -- インスタンスレベルでパスウェイを無効にします。
    ALTER ROLE ALL SET hg_experimental_external_catalog_routing = 'odps:holo_native,dlf:hqe';

現在のアクセスパスの確認

  • 現在のアクセスパスを確認するには、次の SQL 文を実行します。odps:common_table,dlf:hqe が返された場合、Common Table パスが使用されていることを意味します。

    SHOW hg_experimental_external_catalog_routing;
  • 過去のクエリについては、スロークエリログの query_extinfo フィールドで確認できます。driver:CommonTable が表示されている場合、そのクエリで Common Table パスウェイが使用されたことを示します。

Auto Split Size

Auto Split Size 機能はデフォルトで無効になっており、そのパラメーターは off に設定されています。この機能は、必要に応じて有効または無効にできます。以降のセクションでは、この機能の設定方法について説明します。

Auto Split Size の有効化

V4.0 以降のバージョン

  • セッションレベルで有効化

    -- セッションレベルで Auto Split Size を有効にします。
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • データベースレベルで有効化

    -- データベースレベルで Auto Split Size を有効にします。
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';
  • インスタンスレベルで有効化

    -- インスタンスレベルで Auto Split Size を有効にします。
    ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'on';

V4.0 より前のバージョン

  • セッションレベルで有効化

    -- セッションレベルで Auto Split Size を有効にします。
    SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • データベースレベルで有効化

    -- データベースレベルで Auto Split Size を有効にします。
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'on';
  • インスタンスレベルで有効化

    -- インスタンスレベルで Auto Split Size を有効にします。
    ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'on';

Auto Split Size の無効化

V4.0 以降のバージョン

  • セッションレベルで無効化

    -- セッションレベルで Auto Split Size を無効にします。
    SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • データベースレベルで無効化

    -- データベースレベルで Auto Split Size を無効にします。
    ALTER DATABASE <database name> SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';
  • インスタンスレベルで無効化

    -- インスタンスレベルで Auto Split Size を無効にします。
    ALTER ROLE ALL SET hg_experimental_enable_maxcompute_sdk_auto_split_size = 'off';

V4.0 より前のバージョン

  • セッションレベルで無効化

    -- セッションレベルで Auto Split Size を無効にします。
    SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • データベースレベルで無効化

    -- データベースレベルで Auto Split Size を無効にします。
    ALTER DATABASE <database name> SET hg_experimental_enable_common_table_auto_split_size = 'off';
  • インスタンスレベルで無効化

    -- インスタンスレベルで Auto Split Size を無効にします。
    ALTER ROLE ALL SET hg_experimental_enable_common_table_auto_split_size = 'off';