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

Hologres:外部スキーマのインポート

最終更新日:Feb 04, 2026

IMPORT FOREIGN SCHEMA 文は、外部テーブルをバッチで作成します。この Topic では、この文の使用方法と制限事項について説明します。

機能詳細

IMPORT FOREIGN SCHEMA は、外部テーブルをバッチで作成する Hologres の機能です。リモートデータソースからテーブルスキーマを Hologres の外部テーブルに自動的にマッピングするため、各テーブルを手動で作成する必要がありません。現在、この機能は次の 2 種類のデータソースをサポートしています:

  • MaxCompute テーブル:MaxCompute の 2層モデルまたは 3層モデルから外部テーブルをバッチでインポートします。

  • DLF の Paimon テーブル:Data Lake Formation (DLF) の Paimon テーブルから Hologres の外部テーブルをバッチで作成します。

制限

  • IMPORT FOREIGN SCHEMA 文を使用する場合、LIMIT TO 句を追加してインポートするテーブルを指定する必要があります。テーブル名は括弧で囲みます。この句を省略すると、ターゲットの MaxCompute プロジェクト内のすべてのテーブルに対して Hologres に外部テーブルが作成されます。

  • Hologres V1.1.26 以降のバージョンのみが、IMPORT FOREIGN SCHEMA を使用して作成された外部テーブルの名前にプレフィックスとサフィックスを追加することをサポートしています。ご利用のインスタンスが V1.1.26 より前のバージョンの場合は、アップグレード準備時の一般的なエラーをご参照いただくか、Hologres DingTalk グループに参加してフィードバックを提供してください。詳細については、「オンラインサポートの利用方法」をご参照ください。

  • Hologres V1.3 以降のバージョンは、Project と Table の間に Schema レイヤーを追加する MaxCompute の 3層モデルをサポートしています。詳細については、「スキーマ操作」をご参照ください。3層モデルを使用する MaxCompute プロジェクトから Hologres に外部テーブルを作成するには、Hologres V1.3 以降のバージョンを使用する必要があります。Hologres の以前のバージョンを使用している場合は、アップグレード準備時の一般的なエラーをご参照いただくか、Hologres DingTalk グループに参加してフィードバックを提供してください。詳細については、「オンラインサポートの利用方法」をご参照ください。

コマンドフォーマット

Hologres で外部テーブルをバッチ作成するコマンドは、次のフォーマットを使用します。

IMPORT FOREIGN SCHEMA remote_schema
    [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
    FROM SERVER odps_server
    INTO local_schema 
    [ OPTIONS ( option 'value' [, ... ] ) ]

パラメーターの説明

次の表にパラメーターを示します。

パラメーター

説明

remote_schema

  • MaxCompute

    • 2層モデル:インポートする MaxCompute テーブルが配置されているプロジェクトの名前。

    • 3層モデル:MaxCompute プロジェクトとスキーマの名前。フォーマットは odps_project_name#odps_schema_name です。MaxCompute プロジェクトが 3層モデルを使用しているにもかかわらず、2層モデルの構文を使用すると、エラーが発生します。エラーメッセージの例を次に示します。

      failed to import foreign schema:Table not found - table_xxx
  • DLF:DLF で作成されたメタデータベースの名前。

table_name

  • MaxCompute:インポートする MaxCompute テーブルの名前。

  • DLF:インポートする DLF テーブルの名前。

server_name

  • MaxCompute:MaxCompute テーブルが配置されている外部サーバーの名前。デフォルト値は odps_server です。Hologres で事前に作成された odps_server という名前の外部テーブルサーバーを直接呼び出すことができます。原理の詳細については、「Postgres FDW」をご参照ください。

  • DLF:DLF テーブルが配置されている外部サーバーの名前。詳細については、「DLF に基づく Paimon カタログへのアクセス」をご参照ください。

local_schema

Hologres 外部テーブルが配置されているスキーマの名前 (例:public)。

options

Hologres は、次の4つのオプションをサポートしています:

  • if_table_exist:インポート中に同じ名前のテーブルが既に存在する場合に実行する操作を指定します。有効な値:

    • error:デフォルト値。同じ名前の外部テーブルが既に存在する場合、テーブルは作成されません。

    • ignore:同じ名前の外部テーブルが既に存在する場合、そのテーブルのインポートをスキップします。他のテーブルのインポートプロセスは続行されます。

    • update:テーブルを再インポートして更新します。

  • if_unsupported_type:インポートされた外部テーブルに Hologres がサポートしていないデータ型が含まれている場合に実行する操作を指定します。有効な値:

    • error:エラーをレポートし、インポートは失敗します。メッセージには、サポートされていないデータ型を含むテーブルが示されます。

    • skip:デフォルト値。サポートされていないデータ型を含むテーブルのインポートをスキップします。メッセージには、スキップされたテーブルが示されます。

  • prefix:インポート中に生成される Hologres 外部テーブルの名前のプレフィックス。このオプションは Hologres V1.1.26 で追加されました。

  • suffix:インポート中に生成される Hologres 外部テーブルの名前のサフィックス。このオプションは Hologres V1.1.26 で追加されました。

説明

Hologres は MaxCompute 外部テーブルの作成のみをサポートしています。新しい外部テーブルの名前は、対応する MaxCompute テーブルの名前と一致する必要があります。

使用例

  • MaxCompute 2層モデル

    以下の例では、MaxCompute パブリックデータセット public_data のテーブルから Hologres に外部テーブルをバッチで作成する方法を示します。

    • 例 1:public スキーマに新しい外部テーブルを作成します。テーブルが存在する場合は更新します。

      IMPORT FOREIGN SCHEMA public_data LIMIT TO
      (customer) 
        FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
    • 例 2:public スキーマに外部テーブルをバッチで作成します。

       IMPORT FOREIGN SCHEMA public_data LIMIT TO(
        customer,
        customer_address,
        customer_demographics,
        inventory,item,
        date_dim,
        warehouse) 
        FROM server odps_server INTO PUBLIC options(if_table_exist 'update');
    • 例 3:testdemo スキーマを作成し、外部テーブルをバッチで作成します。

      CREATE schema testdemo;
      
      IMPORT FOREIGN SCHEMA public_data LIMIT TO(
        customer,
        customer_address,
        customer_demographics,
        inventory,item,
        date_dim,
        warehouse) 
        FROM server odps_server INTO testdemo options(if_table_exist 'update');
        
      SET search_path TO testdemo;
    • 例 4:public スキーマに外部テーブルをバッチで作成します。外部テーブルが既に存在する場合は、エラーをレポートします。

      IMPORT FOREIGN SCHEMA public_data LIMIT to
      (customer,
        customer_address) 
        FROM server odps_server INTO PUBLIC options(if_table_exist 'error');
    • 例 5:public スキーマに外部テーブルをバッチで作成します。外部テーブルが既に存在する場合は、スキップします。

      IMPORT FOREIGN SCHEMA public_data LIMIT to
      (customer,
        customer_address) 
        FROM server odps_server INTO PUBLIC options(if_table_exist 'ignore');
  • MaxCompute 3層モデル

    MaxCompute odps_hologres プロジェクトの tpch_10g スキーマにある odps_region_10g テーブルにマッピングされた Hologres の外部テーブルを作成できます。

    IMPORT FOREIGN SCHEMA "odps_hologres#tpch_10g" LIMIT to
    (
        odps_region_10g
    )
    FROM SERVER odps_server INTO public OPTIONS(if_table_exist 'error',if_unsupported_type 'error');
  • DLF データソース

    DLF データソースの場合、github_events などのデータソース名を指定して、Hologres 外部テーブルを直接作成します。

    • 例:public スキーマに新しい外部テーブルを作成します。テーブルが存在する場合は更新します。詳細については、「DLF に基づく Paimon カタログへのアクセス」をご参照ください。

      IMPORT FOREIGN SCHEMA github_events
      limit to (customer) 
      FROM SERVER paimon_server into public
      options (if_table_exist 'update');