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

AnalyticDB:IMPORT FOREIGN SCHEMA

最終更新日:Mar 28, 2026

IMPORT FOREIGN SCHEMA を使用して、AnalyticDB for MySQL クラスターに MaxCompute 外部テーブルを一括作成します。

前提条件

開始する前に、以下を確認してください。

  • V3.2.2.0 以降で実行されている AnalyticDB for MySQL クラスター

    マイナーバージョンを表示および更新するには、AnalyticDB for MySQL コンソール にログインし、[クラスター情報] ページの [設定情報] セクションに移動します。
  • クラスターで Elastic Network Interface (ENI) が有効になっていること

    重要

    ENI を有効化するには、AnalyticDB for MySQL コンソール にログインし、クラスターの詳細ページに移動して、左側のナビゲーションウィンドウで [クラスターマネジメント] > [クラスター情報] を選択します。 [ネットワーク情報] セクションで ENI を有効化します。 ENI の有効化または無効化により、約 2 分間データベース接続が中断されます。 この期間中は、読み取りまたは書き込み操作を実行できません。

  • ご利用の AnalyticDB for MySQL クラスターと同じリージョンに MaxCompute プロジェクトがあること

  • ご利用のクラスターが存在する virtual private cloud (VPC) の CIDR ブロックが、MaxCompute プロジェクトの IP アドレスホワイトリストに追加されていること

    CIDR ブロックを確認するには、AnalyticDB for MySQL コンソール[クラスター情報]VPC コンソールで該当の VPC を検索します。MaxCompute でのホワイトリストの設定方法については、「IP アドレスホワイトリストの管理」をご参照ください。
  • クラスター用に外部サーバーが作成されていること — このトピックの「外部サーバーの作成」をご参照ください。

クイックスタート

以下のエンドツーエンドの例は、外部サーバーを作成し、外部テーブルをインポートする完全なワークフローを示しています。

ステップ 1: 外部サーバーの作成

CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"STS.****************",
    "accesskey":"yourAccessKeySecret"
}';

ステップ 2: MaxCompute プロジェクトからすべてのテーブルをインポートします。

IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;

これにより、my_project 内のすべてのテーブルに対して AnalyticDB for MySQL に外部テーブルが作成されます。

構文

IMPORT FOREIGN SCHEMA odps_project
[LIMIT TO (table_name[, ...])]
FROM server_name
INTO adb_schema
[OPTIONS (
  if_table_exist 'error|ignore|update',
  if_type_unsupport 'error|ignore',
  table_prefix 'table_prefix',
  table_suffix 'table_suffix')]

パラメーター

パラメーター必須説明
odps_projectはいMaxCompute プロジェクトの名前。
table_name[,...]いいえインポートする MaxCompute テーブル。省略した場合、プロジェクト内のすべてのテーブルがインポートされます。
server_nameはい外部サーバーの名前。
adb_schemaはいAnalyticDB for MySQL クラスター内のデータベースの名前。
if_table_existいいえ既存のテーブルとの名前の競合を処理する方法。デフォルト: error。以下のオプションを参照してください。
if_type_unsupportいいえサポートされていないデータの型を処理する方法。デフォルト: error。以下のオプションを参照してください。
table_prefixいいえ各外部テーブル名に追加するプレフィックス。デフォルトでは、外部テーブルは対応する MaxCompute テーブルと同じ名前を使用します。
table_suffixいいえ各外部テーブル名に追加するサフィックス。デフォルトでは、外部テーブルは対応する MaxCompute テーブルと同じ名前を使用します。

if_table_exist オプション

動作使用する状況
error (デフォルト)エラーを報告し、競合するテーブルをリストします。テーブルは作成されません。厳密な制御が必要で、続行する前に競合を確認する必要がある場合。
ignore名前が競合するテーブルをスキップし、他のすべてのテーブルを作成します。冪等なスクリプトを実行する場合 — 既存のテーブルを上書きすることなく、インポートを安全に再実行できます。
update名前が競合するテーブルを上書きし、他のすべてのテーブルを作成します。MaxCompute からのスキーマ変更を同期する場合 — 既存の外部テーブルは、最新の MaxCompute スキーマと一致するようにリフレッシュされます。

if_type_unsupport オプション

動作
error (デフォルト)エラーを報告し、サポートされていないデータの型とそれらを含むテーブルをリストします。
ignoreサポートされていないデータの型を含むテーブルをスキップし、他のすべてのテーブルを作成します。

プロジェクトからすべてのテーブルをインポート

my_project からすべてのテーブルを my_adb_schema データベースにインポートします。

IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;

命名オプションを指定したテーブルのインポート

customer および order テーブルのみをインポートし、外部テーブル名に pre_ プレフィックスと _suf サフィックスを追加します。同じ名前の既存のテーブルを上書きし、サポートされていないデータの型を持つテーブルをスキップします。

IMPORT FOREIGN SCHEMA my_project
LIMIT TO (customer, order)
FROM maxcompute_server
INTO my_adb_schema
OPTIONS (
    if_table_exist 'update',
    if_type_unsupport 'ignore',
    table_prefix 'pre_',
    table_suffix '_suf'
);

これにより、AnalyticDB for MySQL に pre_customer_suf および pre_order_suf という名前の外部テーブルが作成されます。

外部サーバーの管理

外部サーバーは、MaxCompute プロジェクトの接続構成を保存します。IMPORT FOREIGN SCHEMA を実行する前に作成してください。

外部サーバーの作成

構文

CREATE SERVER <server_name>
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"<endpoint>",
    "accessid":"<accesskey_id>",
    "accesskey":"<accesskey_secret>"
}'

パラメーター

パラメーター必須説明
server_nameはい外部サーバーの名前。最大 64 文字で、文字、数字、アンダースコア (_) を含めることができます。文字またはアンダースコアで始まる必要があります。
TYPE='ODPS'はい外部サーバータイプ。ODPS に設定します。
endpointはいMaxCompute の VPC エンドポイント。VPC エンドポイントのみがサポートされています。エンドポイント値については、「エンドポイント」をご参照ください。
accessidはいMaxCompute へのアクセス権を持つ Alibaba Cloud アカウントまたは Resource Access Management (RAM) ユーザーの AccessKey ID。AccessKey ID と AccessKey Secret の取得方法については、「アカウントと権限」をご参照ください。
accesskeyはいMaxCompute にアクセスする権限を持つ Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey Secret。AccessKey ID と AccessKey Secret の取得方法については、「アカウントと権限」をご参照ください。

CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"STS.****************",
    "accesskey":"yourAccessKeySecret"
}';

外部サーバーのクエリ

すべての外部サーバーをリストします。

SHOW SERVER

名前で特定の外部サーバーをクエリします。

SHOW SERVER WHERE SERVER_NAME='<server_name>';

例:

SHOW SERVER WHERE SERVER_NAME='maxcompute_server';

タイプで外部サーバーをクエリします。

SHOW SERVER WHERE SERVER_TYPE='<server_type>';

MaxCompute サーバーの場合、server_typeODPS に設定します。

SHOW SERVER WHERE SERVER_TYPE='ODPS';

外部サーバーの名前変更

構文

ALTER SERVER <server_name> RENAME <new_server_name>

パラメーター

パラメーター必須説明
server_nameはい外部サーバーの現在の名前。
new_server_nameはい外部サーバーの新しい名前。

ALTER SERVER maxcompute_server RENAME mc_server;

外部サーバーの削除

外部サーバーを削除すると、そのサーバーを介して確立された AnalyticDB for MySQL と MaxCompute 間の接続が切断されます。

構文

DROP SERVER <server_name>

パラメーター

パラメーター必須説明
server_nameはい削除する外部サーバーの名前。

DROP SERVER maxcompute_server;