`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 |
|
table_name |
|
server_name |
|
local_schema | Hologres 外部テーブルが配置されているスキーマの名前 (例:public)。 |
options | Hologres は、次の4つのオプションをサポートしています:
|
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');