使用DataWorks

MaxCompute支持通过DataWorks的数据集成功能将MaxCompute中的数据以离线方式导出至其他数据源。当您需要将MaxCompute中的数据导出至其他数据源执行后续数据处理操作时,您可以使用数据集成功能导出数据。本文为您介绍如何将MaxCompute的数据导出至其他数据源。

背景信息

数据集成的导出方式有如下两种:

  • 向导模式:创建离线同步节点后,在DataWorks界面以可视化方式配置数据来源、去向及字段的映射关系等信息,完成数据导出操作。

  • 脚本模式:创建离线同步节点后,将DataWorks可视化界面切换至脚本模式,通过脚本配置数据来源、去向及字段的映射关系等信息,完成数据导出操作。

前提条件

请确认您已完成如下操作:

使用限制

每个离线同步节点仅支持将单张表数据导出至其他数据源。如果您需要导出多张表数据,需要创建多个离线数据同步节点。

操作流程

通过数据集成导出MaxCompute数据的流程如下:

  1. 添加MaxCompute数据源

    将MaxCompute数据源添加至DataWorks的数据源列表。

  2. 添加目标数据源

    将目标数据源添加至DataWorks的数据源列表。

  3. 创建业务流程

    在DataWorks上创建业务流程,为创建离线同步任务做准备。

  4. 创建离线同步节点

    在创建的业务流程基础上,创建离线同步节点。

  5. 通过向导模式配置并运行数据同步任务通过脚本模式配置并运行数据同步任务

    以可视化或脚本模式配置并运行离线同步任务。

  6. 确认同步结果

    在目标数据源侧确认数据同步结果。

添加MaxCompute数据源

具体操作请参见创建MaxCompute数据源

添加目标数据源

请根据MaxCompute导出的目标数据源类型,完成添加数据源操作。更多添加数据源操作,请参见配置数据源

创建业务流程

在DataWorks上创建业务流程,为创建离线同步任务做准备。

  1. 登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 数据开发页面,鼠标悬停至新建图标,单击新建业务流程

  3. 新建业务流程对话框中,输入业务名称描述

  4. 单击新建

创建离线同步节点

在创建的业务流程基础上,创建离线同步节点。

  1. 展开业务流程,右键单击数据集成

  2. 单击新建节点 > 离线同步

  3. 新建节点对话框中,输入节点名称,并选择路径

    重要

    节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。

  4. 单击确认

通过向导模式配置并运行数据同步任务

  1. 配置网络与资源。

    1. 选择数据来源。

      数据来源下拉列表中选择数据源类型为MaxCompute(ODPS),并选择创建好的MaxCompute数据源名称

    2. 选择独享数据集成资源组。

      选择已创建的独享数据集成资源组,详情请参见新增和使用独享数据集成资源组

    3. 选择数据去向。

      数据去向下拉列表中选择目标数据源类型及目标数据源名称。

    4. 测试连通性。

      测试资源组与数据来源、数据去向之间的网络连通性,确认独享数据集成资源组与数据源网络已打通。然后单击下一步image.png

  2. 配置任务。

    1. 配置数据来源与去向。

      数据来源数据去向区域,配置任务读取与写入的表,及同步的数据范围。详情请参见配置数据来源与去向

    2. 配置字段映射关系。

      选择数据来源和数据去向后,需要指定读取端和写入端列的映射关系,配置字段映射关系后,任务将根据字段映射关系,将源端字段写入目标端对应类型的字段中。具体操作请参见配置字段映射关系

    3. 配置通道控制。

      您可通过通道配置,控制数据同步过程相关属性。详情请参见配置通道

  3. 配置调度属性。

    在同步任务中配置调度参数进行数据过滤。

  4. 在顶部菜单栏,单击保存图标后,单击运行图标,运行离线同步任务。

通过脚本模式配置并运行数据同步任务

  1. 配置网络与资源。

    选择离线同步任务的数据来源和数据去向,以及用于执行同步任务的资源组,并测试连通性。具体操作请参见通过向导模式配置并运行数据同步任务

  2. 转换脚本模式并导入模板。

    单击工具栏中的转换脚本图标。如果脚本还未配置,您可以通过单击工具栏中的image.png图标,根据界面提示快速导入脚本模板。image.png

  3. 编辑脚本,配置同步任务。

    1. 配置同步任务的读取端。

      在脚本中配置离线同步任务读取的数据源,以及需要同步的表信息等。

      {
                  "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;命令,查看表的名称。

      • namecategory:取值为Reader,标识数据源为读取端。

    2. 配置同步任务的写入端。

      在脚本中配置离线同步任务写入的数据源,以及需要写入的表信息等。

      {
                  "stepType":"oss",
                  "parameter":{
                      "partition":"",
                      "truncate":true,
                      "datasource":"",
                      "column":[
                          "*"
                      ],
                      "table":""
                  },
                  "name":"Writer",
                  "category":"writer"
              }
      • stepType:目标数据源类型。

      • partition:目标表的分区信息。

      • datasource:目标数据源的名称。

      • column:目标表的列名称。

      • table:目标表的名称。

      • namecategory:取值为Writer,标识数据源为写入端。

    3. 配置作业速率上限、脏数据检查规则等信息。

      "setting": {
              "errorLimit": {
                  "record": "1024"   
              },
              "speed": {
                  "throttle": false,   
                  "concurrent": 1   
              }
          },
      • record:脏数据的最大容忍条数。

      • throttle:设置是否进行限速。

      • concurrent:设置离线同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。

    更多配置参数详情请参见编辑脚本,配置同步任务

  4. 配置调度属性。详情请参见调度参数支持的格式

  5. 在顶部菜单栏,单击保存图标后,单击运行图标,运行离线同步任务。

确认同步结果

请前往目标数据源中确认MaxCompute表中的数据是否已成功导入目标表中:

  • 如果数据完整无遗漏,则同步完成。

  • 如果数据未同步成功或数据存在遗漏,请参见离线同步常见问题