云原生数据仓库 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;