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

背景信息

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

前提条件

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

使用限制

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

操作流程

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

  1. 添加MaxCompute数据源
    将MaxCompute数据源添加至DataWorks的数据源列表。
  2. 添加目标数据源
    将MaxCompute数据源导出至的目标数据源添加至DataWorks的数据源列表。
  3. 创建业务流程
    在DataWorks上创建业务流程,为创建离线同步任务做准备。
  4. 创建离线同步节点
    在创建的业务流程基础上,创建离线同步任务。
  5. 通过向导模式配置并运行数据同步任务通过脚本模式配置并运行数据同步任务
    以可视化或脚本模式配置并运行离线同步任务。
  6. 确认同步结果
    在目标数据源侧确认数据同步结果。

添加MaxCompute数据源

  1. 进入数据源管理页面。
    1. 登录DataWorks控制台
    2. 在左侧导航栏,单击工作空间列表
    3. 选择工作空间所在地域后,单击相应工作空间后的进入数据集成
    4. 在左侧导航栏,单击数据源 > 数据源列表,进入工作空间管理 > 数据源管理页面。
  2. 数据源管理页面,单击右上角的新增数据源
  3. 新增数据源对话框中,选择数据源类型为MaxCompute(ODPS)
  4. 新增MaxCompute(ODPS)数据源对话框中,配置各项参数。
    ODPS数据源
    参数 描述
    数据源名称 数据源名称必须以字母、数字、下划线(_)组合,且不能以数字和下划线(_)开头。
    数据源描述 对数据源进行简单描述,不得超过80个字符。
    适用环境 可以选择开发生产环境。
    说明 仅标准模式工作空间会显示该配置。
    ODPS Endpoint 默认只读,从系统配置中自动读取。
    Tunnel Endpoint MaxCompute Tunnel服务的连接地址,详情请参见配置Endpoint
    ODPS项目名称 MaxCompute(ODPS)项目名称。
    AccessKey ID 访问密钥中的AccessKey ID,您可以进入用户信息管理页面进行复制。
    AccessKey Secret 访问密钥中的AccessKey Secret,相当于登录密码。
  5. 选择资源组连通性类型为数据集成
  6. 在资源组列表,单击相应资源组后的测试连通性
    数据同步时,一个任务只能使用一种资源组。您需要测试每种资源组的连通性,以保证同步任务使用的数据集成资源组能够与数据源连通,否则将无法正常执行数据同步任务。如果您需要同时测试多种资源组,请选中相应资源组后,单击批量测试连通性。详情请参见选择网络连通方案
    说明
    • (推荐)资源组列表默认仅显示独享数据集成资源组,为确保数据同步的稳定性和性能要求,推荐使用独享数据集成资源组。
    • 如果您需要测试公共资源组或自定义资源组的连通性,请在资源组列表右下方,单击更多选项,在警告对话框单击确定,资源组列表会显示可供选择的公共资源组和自定义资源组。
  7. 测试连通性通过后,单击完成

添加目标数据源

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

创建业务流程

  1. 登录DataWorks控制台
  2. 在左侧导航栏,单击工作空间列表
  3. 选择工作空间所在地域后,单击相应工作空间后的进入数据开发
  4. 数据开发页面,鼠标悬停至新建图标,单击业务流程
  5. 新建业务流程对话框中,输入业务名称描述
    注意 业务名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
  6. 单击新建

创建离线同步节点

  1. 展开业务流程,右键单击数据集成
  2. 单击新建 > 离线同步
  3. 新建节点对话框中,输入节点名称,并选择目标文件夹
    注意 节点名称必须是大小写字母、中文、数字、下划线(_)以及小数点(.),且不能超过128个字符。
  4. 单击提交

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

  1. 选择数据来源
    在数据来源下的数据源下拉列表选择数据源类型为ODPS及创建好的MaxCompute数据源名称,在下拉列表选择待导出数据的表。如果为分区表需要配置分区信息。数据来源
  2. 选择数据去向
    在数据去向下的数据源下拉列表选择目标数据源类型及目标数据源名称,在下拉列表选择目标表。数据去向
  3. 配置字段的映射关系
    指定数据来源表和数据去向表间字段的映射关系。映射
  4. 配置通道控制
    通道控制
  5. 配置调度属性
    在同步任务中配置调度参数进行数据过滤。
  6. 在顶部菜单栏,单击保存图标后,单击运行图标,运行离线同步任务。

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

  1. 导入模板
    来源类型下拉列表选择ODPS,对应数据源为创建好的MaxCompute数据源名称。在目标类型下拉列表选择目标数据源类型,对应数据源为目标数据源名称。导入模板
  2. 配置同步任务的读取端
    在脚本中配置离线同步任务读取的数据源,以及需要同步的表信息等。
    {
                "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,标识数据源为读取端。
  3. 配置同步任务的写入端
    在脚本中配置离线同步任务写入的数据源,以及需要写入的表信息等。
    {
    			"stepType":"mysql",
    			"parameter":{
    				"partition":"",
    				"truncate":true,
    				"datasource":"",
    				"column":[
    					"*"
    				],
    				"table":""
    			},
    			"name":"Writer",
    			"category":"writer"
    		}
    • stepType:目标数据源类型。
    • partition:目标表的分区信息。
    • datasource:目标数据源的名称。
    • column:目标表的列名称。需要与2中配置的列名称建立一一对应关系。
    • table:目标表的名称。
    • namecategory:取值为Writer,标识数据源为写入端。
  4. 配置通道控制
    "setting": {
            "errorLimit": {
                "record": "1024"   
            },
            "speed": {
                "throttle": false,   
                "concurrent": 1   
            }
        },
    • record:脏数据的最大容忍条数。
    • throttle:设置是否进行限速。
    • concurrent:设置离线同步任务内,可以从源并行读取或并行写入数据存储端的最大线程数。
  5. 配置调度属性
  6. 在顶部菜单栏,单击保存图标后,单击运行图标,运行同步任务。

确认同步结果

请前往目标数据源中确认MaxCompute表中的数据是否已成功导入目标表中:
  • 如果数据完整无遗漏,则同步完成。
  • 如果数据未同步成功或数据存在遗漏,请参见离线同步常见问题