本文介绍如何通过INSERT外表方式将AnalyticDB MySQL版集群的SQL数据导出到MaxCompute(原名ODPS)分区表。
导出到MaxCompute一级分区表
本示例将AnalyticDB MySQL版的adb_table
表中的数据导出到MaxCompute的odps_table
一级分区表中。
- 连接目标AnalyticDB MySQL集群。详细操作步骤,请参见连接集群。
- 新建一张外表映射到MaxCompute的目标数据表。
CREATE TABLE odps_external_table
(
uid string,
ds string
)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"xxx",
"accesskey":"xxx",
"project_name":"xxx",
"table_name":"odps_table",
"partition_column":"ds"
}'
参数 |
说明 |
ENGINE=’ODPS’ |
表示该表是外部表,使用的存储引擎是MaxCompute。 |
TABLE_PROPERTIES |
用于告知AnalyticDB MySQL版如何访问MaxCompute,并向其写入数据。
|
endpoint |
MaxCompute的EndPoint(域名节点) 。
说明 目前仅支持AnalyticDB MySQL版通过MaxCompute的VPC网络Endpoint访问MaxCompute。
如何查看MaxCompute的EndPoint,请参见Endpoint。
|
accessid |
您在访问MaxCompute目标数据表时所持有的AccessKey ID。 |
accesskey |
您在访问MaxCompute目标数据表时所持有的AccessKey Secret。 |
project_name |
MaxCompute中目标数据表所在的工作空间名。 |
table_name |
MaxCompute中目标数据表的表名。 |
partition_column |
分区字段。 |
- 将数据从AnalyticDB MySQL版外表导出到MaxCompute的数据表一级分区表。
说明 adb_table_column
不包含partition里面的字段。
insert [overwrite] into odps_external_table partition(ds='20200401')
select [adb_table_column, ...] from adb_table [where ...]
导出到MaxCompute二级分区表
本示例将AnalyticDB MySQL版的adb_table
表中的数据导出到MaxCompute的odps_table
二级分区表中。
- 连接目标AnalyticDB MySQL集群。详细操作步骤,请参见连接集群。
- 新建一张外表映射到MaxCompute的数据表。
CREATE TABLE odps_external_table
(
uid string,
ds string,
other string)
ENGINE='ODPS'
TABLE_PROPERTIES='{
"endpoint":"http://service.odps.aliyun-inc.com/api",
"accessid":"xxx",
"accesskey":"xxx",
"project_name":"xxx",
"table_name":"odps_table",
"partition_column":"ds,other"
}'
- 将数据从AnalyticDB MySQL版外表导出到MaxCompute数据表二级分区表。
说明 adb_table_column
不包含partition里面的字段。
insert [overwrite] into odps_external_table partition(ds='20200401',other='hangzhou')
select [adb_table_column, ...] from adb_table [where ...]