MaxCompute支持通过DataWorks的数据集成功能将MaxCompute中的数据以离线方式导出至其他数据源。当您需要将MaxCompute中的数据导出至其他数据源执行后续数据处理操作时,您可以使用数据集成功能导出数据。本文为您介绍如何将MaxCompute的数据导出至其他数据源。
背景信息
前提条件
请确认您已完成如下操作:
已在MaxCompute上准备好待导出至其他数据源的表数据。
更多创建表及写入数据操作,请参见表操作和插入或覆写数据(INSERT INTO | INSERT OVERWRITE)。
已准备好目标数据源及目标表。
使用限制
每个离线同步节点仅支持将单张表数据导出至其他数据源。如果您需要导出多张表数据,需要创建多个离线数据同步节点。
操作流程
通过数据集成导出MaxCompute数据的流程如下:
将MaxCompute数据源添加至DataWorks的数据源列表。
将目标数据源添加至DataWorks的数据源列表。
在DataWorks上创建业务流程,为创建离线同步任务做准备。
在创建的业务流程基础上,创建离线同步节点。
通过向导模式配置并运行数据同步任务或通过脚本模式配置并运行数据同步任务
以可视化或脚本模式配置并运行离线同步任务。
在目标数据源侧确认数据同步结果。
添加MaxCompute数据源
具体操作请参见创建MaxCompute数据源。
添加目标数据源
请根据MaxCompute导出的目标数据源类型,完成添加数据源操作。更多添加数据源操作,请参见配置数据源。
创建业务流程
在DataWorks上创建业务流程,为创建离线同步任务做准备。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
在数据开发页面,鼠标悬停至图标,单击新建业务流程。
在新建业务流程对话框中,输入业务名称和描述。
单击新建。
创建离线同步节点
在创建的业务流程基础上,创建离线同步节点。
展开业务流程,右键单击数据集成。
单击 。
在新建节点对话框中,输入节点名称,并选择路径。
重要节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
单击确认。
通过向导模式配置并运行数据同步任务
配置网络与资源。
选择数据来源。
在数据来源下拉列表中选择数据源类型为MaxCompute(ODPS),并选择创建好的MaxCompute数据源名称。
选择独享数据集成资源组。
选择已创建的独享数据集成资源组,详情请参见新增和使用独享数据集成资源组。
选择数据去向。
在数据去向下拉列表中选择目标数据源类型及目标数据源名称。
测试连通性。
测试资源组与数据来源、数据去向之间的网络连通性,确认独享数据集成资源组与数据源网络已打通。然后单击下一步。
配置任务。
配置调度属性。
在同步任务中配置调度参数进行数据过滤。
在顶部菜单栏,单击图标后,单击图标,运行离线同步任务。
通过脚本模式配置并运行数据同步任务
配置网络与资源。
选择离线同步任务的数据来源和数据去向,以及用于执行同步任务的资源组,并测试连通性。具体操作请参见通过向导模式配置并运行数据同步任务。
转换脚本模式并导入模板。
单击工具栏中的转换脚本图标。如果脚本还未配置,您可以通过单击工具栏中的图标,根据界面提示快速导入脚本模板。
编辑脚本,配置同步任务。
配置同步任务的读取端。
在脚本中配置离线同步任务读取的数据源,以及需要同步的表信息等。
{ "stepType": "odps", "parameter": { "partition": [], "datasource": "odps_first", "envType": 0, "column": [ "*" ], "table": "" }, "name": "Reader", "category": "reader" },
stepType:数据源类型。设置为odps。
partition:表的分区信息。您可以通过
show partitions <table_name>;
命令,查看表的分区信息。更多查看分区信息,请参见查看分区。datasource:MaxCompute数据源的名称。
column:待导出数据的表的列名称。
table:待导出数据的表的名称。您可以通过
show tables;
命令,查看表的名称。name和category:取值为Reader,标识数据源为读取端。
配置同步任务的写入端。
在脚本中配置离线同步任务写入的数据源,以及需要写入的表信息等。
{ "stepType":"oss", "parameter":{ "partition":"", "truncate":true, "datasource":"", "column":[ "*" ], "table":"" }, "name":"Writer", "category":"writer" }
stepType:目标数据源类型。
partition:目标表的分区信息。
datasource:目标数据源的名称。
column:目标表的列名称。
table:目标表的名称。
name和category:取值为Writer,标识数据源为写入端。
配置作业速率上限、脏数据检查规则等信息。
"setting": { "errorLimit": { "record": "1024" }, "speed": { "throttle": false, "concurrent": 1 } },
record:脏数据的最大容忍条数。
throttle:设置是否进行限速。
concurrent:设置离线同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。
更多配置参数详情请参见编辑脚本,配置同步任务。
配置调度属性。详情请参见调度参数支持的格式。
在顶部菜单栏,单击图标后,单击图标,运行离线同步任务。
确认同步结果
请前往目标数据源中确认MaxCompute表中的数据是否已成功导入目标表中:
如果数据完整无遗漏,则同步完成。
如果数据未同步成功或数据存在遗漏,请参见离线同步常见问题。