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')]
參數說明
參數 | 是否必填 | 說明 |
| 是 | 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;