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')]

参数说明

参数

是否必填

说明

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;