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

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

最終更新日:Dec 31, 2025

`IMPORT FOREIGN SCHEMA` 文は、一度に複数の外部テーブルを作成します。このトピックでは、`IMPORT FOREIGN SCHEMA` 文の構文と制限事項について説明します。

機能詳細

`IMPORT FOREIGN SCHEMA` は、一度に複数の外部テーブルを作成できる機能です。リモートデータソースから Hologres の外部テーブルにテーブルスキーマを自動的にマッピングします。これにより、各テーブルを手動で作成する手間が省けます。この機能は、次の 2 種類のデータソースをサポートしています:

  • MaxCompute テーブル:2層モデルまたは3層モデルを使用する MaxCompute プロジェクトから外部テーブルをバッチでインポートします。

  • DLF の Paimon テーブル:Alibaba Cloud 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 以降でのみ、3層モデルを使用する MaxCompute プロジェクトがサポートされます。このモデルでは、MaxCompute プロジェクトでスキーマを作成し、これらのスキーマを使用してテーブルなどのオブジェクトを分類できます。詳細については、「スキーマ操作」をご参照ください。3層モデルを使用する MaxCompute プロジェクト内のテーブルをマッピングするために Hologres インスタンスに外部テーブルを作成する場合で、Hologres のバージョンが V1.3 より前の場合は、アップグレード準備時に発生する一般的なエラー」をご参照いただくか、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層モデルを使用しているにもかかわらず、プロジェクト名のみを指定した場合、エラーが返されます。エラー例を以下に示します。

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

table_name

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

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

server_name

  • 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');