全部產品
Search
文件中心

:IMPORT FOREIGN SCHEMA

更新時間:Oct 11, 2024

AnalyticDB for MySQL支援通過IMPORT FOREIGN SCHEMA大量建立MaxCompute外表。

前提條件

  • AnalyticDB for MySQL叢集為3.2.2.0及以上版本。

    說明
    • 查看湖倉版叢集的核心版本,請執行SELECT adb_version();。如需升級核心版本,請聯絡支援人員。

    • 查看和升級數倉版叢集的核心版本,請參見查看和升級版本

  • AnalyticDB for MySQL已開啟ENI訪問。

    說明

    登入雲原生資料倉儲AnalyticDB MySQL控制台,在叢集資訊頁面的網路資訊地區,開啟ENI網路開關。

  • MaxCompute專案與AnalyticDB for MySQL叢集位於同一地區。

  • 已添加AnalyticDB for MySQL的VPC網段到MaxCompute專案的白名單中。

    說明

    登入雲原生資料倉儲AnalyticDB MySQL控制台,在叢集資訊頁面查詢VPC ID。然後登入專用網路控制台,在專用網路頁面根據VPC ID查詢網段。設定MaxCompute白名單的操作,請參見管理IP白名單

  • 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表名稱如果不添加表名限制,系統則將該MaxCompute專案中的所有表大量建立至AnalyticDB for MySQL中。

server_name

外部伺服器名。外部伺服器操作詳細文法,請參見管理外部伺服器

adb_schema

目標端AnalyticDB for MySQL資料庫名。

if_table_exist

目標端AnalyticDB for MySQL表名衝突時的處理策略。取值:

  • error(預設值):報錯並提示存在哪些同名表,所有表建立失敗。

  • ignore:跳過該同名表的建立,其餘表正常建立。

  • update:覆蓋並建立新的同名表,其餘表正常建立。

if_type_unsupport

目標端AnalyticDB for MySQL中存在不支援的資料類型時的處理策略。取值:

  • error(預設值):報錯並提示哪些表,存在哪些不支援的資料類型。

  • ignore:跳過建立存在不支援資料類型的表。

table_prefix

為外表名稱新增首碼。預設AnalyticDB for MySQL外表名稱與MaxCompute中一致。

table_suffix

為外表名稱新增尾碼。預設AnalyticDB for MySQL外表名稱與MaxCompute中一致。

樣本

AnalyticDB for MySQL 中建立MaxCompute外表pre_customer_suf和外表pre_order_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'
);

管理外部伺服器

建立外部伺服器

文法

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

參數說明

參數

是否必填

說明

server_name

外部伺服器的名稱。輸入長度不超過64個字元,以字母或底線開頭,只能包含字母、數字和底線。

TYPE='ODPS'

外部伺服器的類型。固定填寫為ODPS。

endpoint

MaxCompute的EndPoint(網域名稱節點)。

說明

僅支援通過VPC網路Endpoint訪問MaxCompute。MaxCompute Endpoint詳細資料請參見Endpoint

accessid

阿里雲帳號或具備MaxCompute存取權限的RAM使用者的AccessKey ID。

如何擷取AccessKey ID和AccessKey Secret,請參見帳號與許可權

accesskey

阿里雲帳號或具備MaxCompute存取權限的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":"LTAI5t1****",
    "accesskey":"mng0dqJ4dBsCY0KTNG****"
}';

查看外部伺服器

查詢所有外部伺服器

SHOW SERVER

查詢指定外部伺服器

文法
SHOW SERVER WHERE SERVER_NAME='<server_name>'
參數說明

參數

是否必填

說明

server_name

外部伺服器的名稱。

樣本
SHOW SERVER WHERE SERVER_NAME='maxcompute_server';

查詢指定類型的外部伺服器

文法
SHOW SERVER WHERE SERVER_TYPE='<server_type>'
參數說明

參數

是否必填

說明

server_type

外部伺服器類型。MaxCompute僅支援ODPS。

樣本
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 MySQLMaxCompute中斷連線。

文法

DROP SERVER <server_name>

參數說明

參數

是否必填

說明

server_name

外部伺服器的名稱。

樣本

DROP SERVER maxcompute_server;