IMPORT FOREIGN SCHEMA
云原生數據倉庫 AnalyticDB 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')]
參數說明
參數 | 是否必填 | 說明 |
| 是 | MaxCompute的項目名稱。 |
| 否 | 需要導入的MaxCompute表名稱。如果不添加表名限制,系統則將該MaxCompute項目中的所有表批量創建至AnalyticDB for MySQL中。 |
| 是 | 外部服務器名。外部服務器操作詳細語法,請參見管理外部服務器。 |
| 是 | 目標端AnalyticDB for MySQL數據庫名。 |
| 否 | 目標端AnalyticDB for MySQL表名沖突時的處理策略。取值:
|
| 否 | 目標端AnalyticDB for MySQL中存在不支持的數據類型時的處理策略。取值:
|
| 否 | 為外表名稱新增前綴。默認AnalyticDB for MySQL外表名稱與MaxCompute中一致。 |
| 否 | 為外表名稱新增后綴。默認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>"
}'
參數說明
參數 | 是否必填 | 說明 |
| 是 | 外部服務器的名稱。輸入長度不超過64個字符,以字母或下劃線開頭,只能包含字母、數字和下劃線。 |
| 是 | 外部服務器的類型。固定填寫為ODPS。 |
| 是 | MaxCompute的EndPoint(域名節點)。 說明 僅支持通過VPC網絡Endpoint訪問MaxCompute。MaxCompute Endpoint詳細信息請參見Endpoint。 |
| 是 | 阿里云賬號或具備MaxCompute訪問權限的RAM用戶的AccessKey ID。 如何獲取AccessKey ID和AccessKey Secret,請參見賬號與權限。 |
| 是 | 阿里云賬號或具備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>'
參數說明
參數 | 是否必填 | 說明 |
| 是 | 外部服務器的名稱。 |
示例
SHOW SERVER WHERE SERVER_NAME='maxcompute_server';
查詢指定類型的外部服務器
語法
SHOW SERVER WHERE SERVER_TYPE='<server_type>'
參數說明
參數 | 是否必填 | 說明 |
| 是 | 外部服務器類型。MaxCompute僅支持ODPS。 |
示例
SHOW SERVER WHERE SERVER_TYPE='ODPS';
重命名外部服務器
語法
ALTER SERVER <server_name> RENAME <new_server_name>
參數說明
參數 | 是否必填 | 說明 |
| 是 | 外部服務器的原名稱。 |
| 是 | 外部服務器的新名稱。 |
示例
ALTER SERVER maxcompute_server RENAME mc_server;
刪除外部服務器
刪除外部服務器后,AnalyticDB for MySQL與MaxCompute斷開連接。
語法
DROP SERVER <server_name>
參數說明
參數 | 是否必填 | 說明 |
| 是 | 外部服務器的名稱。 |
示例
DROP SERVER maxcompute_server;