MaxCompute支持通过DataWorks的数据集成功能将MaxCompute中的数据以离线方式导出至其他数据源。当您需要将MaxCompute中的数据导出至其他数据源执行后续数据处理操作时,您可以使用数据集成功能导出数据。本文为您介绍如何将MaxCompute的数据导出至其他数据源。
背景信息
前提条件
请确认您已完成如下操作:
- 已在MaxCompute上准备好待导出至其他数据源的表数据。
更多创建表及写入数据操作,请参见表操作和插入或覆写数据(INSERT INTO | INSERT OVERWRITE)。
- 已准备好目标数据源及目标表。
使用限制
每个离线同步节点仅支持将单张表数据导出至其他数据源。如果您需要导出多张表数据,需要创建多个离线数据同步节点。
操作流程
通过数据集成导出MaxCompute数据的流程如下:
- 添加MaxCompute数据源将MaxCompute数据源添加至DataWorks的数据源列表。
- 添加目标数据源将MaxCompute数据源导出至的目标数据源添加至DataWorks的数据源列表。
- 创建业务流程在DataWorks上创建业务流程,为创建离线同步任务做准备。
- 创建离线同步节点在创建的业务流程基础上,创建离线同步节点。
- 通过向导模式配置并运行数据同步任务或通过脚本模式配置并运行数据同步任务以可视化或脚本模式配置并运行离线同步任务。
- 确认同步结果在目标数据源侧确认数据同步结果。
添加MaxCompute数据源
- 进入数据源管理页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,鼠标悬浮至
图标,单击工作空间配置。
- 在左侧导航栏,单击 ,进入 页面。
说明 您也可以在数据集成页面进入数据源管理配置数据源,但此方式只支持生产环境的数据源。 - 在数据源管理页面,单击右上角的新增数据源。
- 在新增数据源对话框中,选择数据源类型为MaxCompute。
- 在新增MaxCompute数据源对话框中,配置各项参数。
参数 描述 数据源名称 数据源名称必须以字母、数字、下划线(_)组合,且不能以数字和下划线(_)开头。 数据源描述 对数据源进行简单描述,不得超过80个字符。 适用环境 可以选择开发或生产环境。 说明 仅标准模式工作空间会显示该配置。ODPS Endpoint 默认只读,从系统配置中自动读取。 Tunnel Endpoint MaxCompute Tunnel服务的连接地址,详情请参见Endpoint。 ODPS项目名称 MaxCompute项目名称。 AccessKey ID 访问密钥中的AccessKey ID,您可以进入用户信息管理页面进行复制。 重要 请确保该账号所属用户拥有上述ODPS项目权限, 例如,已加入上述MaxCompute项目。AccessKey Secret 访问密钥中的AccessKey Secret,相当于登录密码。 - 选择资源组连通性类型为数据集成。
- 在资源组列表,单击相应资源组后的测试连通性。数据同步时,一个任务只能使用一种资源组。您需要测试每个资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见配置资源组与网络连通。说明
- (推荐)资源组列表默认仅显示独享数据集成资源组,为确保数据同步的稳定性和性能要求,推荐使用独享数据集成资源组。
- 如果您需要测试公共资源组或自定义资源组的连通性,请在资源组列表右下方,单击更多选项,在警告对话框单击确定,资源组列表会显示可供选择的公共资源组和自定义资源组。
- 测试连通性通过后,单击完成。
添加目标数据源
请根据MaxCompute导出的目标数据源类型,完成添加数据源操作。更多添加数据源操作,请参见配置数据源。
创建业务流程
在DataWorks上创建业务流程,为创建离线同步任务做准备。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的数据开发。
- 在数据开发页面,鼠标悬停至
图标,单击新建业务流程。
- 在新建业务流程对话框中,输入业务名称和描述。
- 单击新建。
创建离线同步节点
在创建的业务流程基础上,创建离线同步节点。
- 展开业务流程,右键单击数据集成。
- 单击 。
- 在新建节点对话框中,输入节点名称,并选择目标文件夹。重要 节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
- 单击提交。
通过向导模式配置并运行数据同步任务
- 选择数据来源。在数据来源下的数据源下拉列表选择数据源类型为ODPS及创建好的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":"mysql", "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表中的数据是否已成功导入目标表中:
- 如果数据完整无遗漏,则同步完成。
- 如果数据未同步成功或数据存在遗漏,请参见离线同步常见问题。