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