全部产品
阿里云办公

DRDS通过数据集成导入/导出

更新时间:2017-11-21 10:04:58

数据集成(Data Integration)是阿里巴巴集团提供的数据同步平台。该平台具备可跨异构数据存储系统、可靠、安全、低成本、可弹性扩展等特点,可为 20 多种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。数据源类型的详情请参见 支持数据源类型

本文将为您介绍如何通过数据集成在 DRDS 中进行数据的 导入导出 操作。

应用场景

  • DRDS 可以通过数据集成的同步任务将数据同步到到其他的数据源中,并对数据进行相应的处理。

  • 可以通过数据集成的同步任务将处理好的其他数据源数据同步到 DRDS。

流程概述

liu3.jpg

步骤1:数据源端新建表。

步骤2:新增数据源。

步骤3:向导模式或脚本模式配置同步任务。

步骤4:运行同步任务,检查目标端的数据质量。

准备工作

  1. 开通阿里云主账号,并建好账号的访问秘钥,即 AccessKeys。

  2. 开通 MaxCompute,这样会自动产生一个默认的 MaxCompute 数据源,并使用主账号登录 DataWorks。

  3. 创建项目。您可以在项目中协作完成工作流,共同维护数据和任务等,因此使用 DataWorks 之前需要先创建一个项目。

    注意

    如果您想通过子账号创建数据集成任务,可以赋予其相应的权限。详情请参见 准备 RAM 子账号项目成员管理

操作步骤

数据源端新建表

您可以使用 建表语句 或直接通过 客户端建表,不同的数据源清参见相应数据库的官方文档进行创建。

新增数据源

注意:

只有项目管理员角色才能够新建数据源,其他角色的成员仅能查看数据源。

本文以添加 DRDS 的数据源为例:

  1. 以开发者身份进入 DataWorks 管理控制台,单击对应项目操作栏中的 进入工作区

  2. 单击顶部菜单栏中的 数据集成,导航至 数据源 页面。

  3. 单击 新增数据源,弹出支持的数据源类型。如下图所示:


  4. 选择数据源类型为 DRDS


    配置项说明:

    • 数据源名称:由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符。

    • 数据源描述:对数据源进行简单描述,不得超过 80 个字符。

    • JDBCUrl:JDBC 连接信息,格式为:jdbc:mysql://serverIP:Port/database。

    • 用户名/密码:对应的用户名和密码。

  5. 单击 测试连通性

  6. 测试连通性通过后,单击 确定

    其他数据源的配置请参见 数据源配置

向导模式或脚本模式配置同步任务

通过数据集成导入数据

以向导模式将 MaxCompute(原 ODPS)数据同步到 DRDS 为例:

  1. 进入 数据集成 页面,新建同步任务,如下图所示:

    1

    • 向导模式:向导模式是可视化界面配置同步任务,共五步:选择来源,选择目标,字段映射,通道控制,预览保存。在每个不同的数据源之间,这几步的界面可能有不同的内容,向导模式可以转换成脚本模式。

    • 脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,将相关的信息填写完整,但是脚本模式不能转化成向导模式。

  2. 选择来源。

    选择 MaxCompute 数据源及源头表 mytest,数据浏览默认是收起的,选择后单击 下一步,如下图所示:

    1

  3. 选择目标。

    选择 DRDS 数据源及目标表 contact_infos,选择后单击 下一步,如下图所示:

    1

    • preSql:执行数据同步任务之前率先执行的 SQL 语句,目前向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如清除旧数据。

    • postSql:执行数据同步任务之后执行的 SQL 语句,目前向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如加上某一个时间戳。

  4. 映射字段。

    单击 下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧 源头表字段 和右侧 目标表字段 为一一对应的关系,如下图所示:

    1

  5. 通道控制。

    单击 下一步,配置作业速率上限和脏数据检查规则,如下图所示:

    1

    • 作业速率上限:指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。

    • 作业并发数:作业速率上限=作业并发数*单并发的传输速率。

    注意

    当作业速率上限已选定的情况下,应该如何选择作业并发数?

    • 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响。

    • 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数。

  6. 预览保存。

    完成上述配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存,如下图所示:

    1

脚本模式配置同步任务:

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "reader": {
  6. "plugin": "odps",
  7. "parameter": {
  8. "datasource": "lzz_odps",//数据源的名称,建议都添加数据源后进行同步
  9. "table": "mytest",//数据来源的表名
  10. "partition": "",//分区信息
  11. "column": [
  12. "id"
  13. ]
  14. }
  15. },
  16. "writer": {
  17. "plugin": "drds",
  18. "parameter": {
  19. "datasource": "l_Drds_w",//数据源的名称,建议都添加数据源后进行同步
  20. "table": "contact_infos",//目的表名
  21. "preSql": [],//导入前准备语句
  22. "postSql": [],//导入后准备语句
  23. "column": [
  24. "id"
  25. ]
  26. }
  27. },
  28. "setting": {
  29. "speed": {
  30. "mbps": "1",//一个并发的速率上线是1MB/S
  31. "concurrent": "1"//并发的数目
  32. }
  33. }
  34. }
  35. }

通过数据集成导出数据

以向导模式配置 DRDS 同步到 MaxCompute 为例:

  1. 进入 数据集成 页面,新建同步任务,如下图所示:

    1

  2. 选择来源。

    选择 DRDS 数据源及源头表 bit_type_test,数据浏览默认是收起的,选择后单击 下一步,如下图所示:

    1

    • 过滤条件:筛选条件,DrdsReader 根据指定的 column、table、where 条件拼接 SQL,并根据这个 SQL 进行数据抽取 。例如在做测试时,可以将 where 条件指定实际业务场景,往往会选择当天的数据进行同步,可以将 where 条件指定如下:

      1. STRTODATE(‘${bdp.system.bizdate}’, ‘%Y%m%d’) <= taday AND taday < DATEADD(STRTODATE(‘${bdp.system.bizdate}’, ‘%Y%m%d’), interval 1 day)
    • 切分键:您可以将源数据表中某一列作为切分键,切分之后可进行并发数据同步,目前仅支持整型字段。建议使用主键或有索引的列作为切分键

  3. 选择目标。

    选择 MaxCompute 数据源及目标表 mytest,选择后单击 下一步,如下图所示:

    1

  4. 映射字段。

    单击 下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧 源头表字段 和右侧 目标表字段 为一一对应的关系 ,如下图所示:

    1

    注意

    映射字段数据源端 添加一行 的功能:

    • 可以输入常量,输入的值需要使用英文单引号包括,如’abc’、’123’等。

    • 可以配合调度参数使用,如’ ${bdp.system.bizdate}’等。

    • 可以输入关系数据库支持的函数,如now()、count(1)等。

    • 如果您输入的值无法解析,则类型显示为’-’。```

  5. 通道控制。

    单击 下一步,配置作业速率上限和脏数据检查规则,如下图所示:

    1

    • 作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。

    • 作业并发数:作业速率上限 = 作业并发数 * 单并发的传输速率。

  6. 预览保存。

    完成上述配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存

脚本模式配置同步任务:

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "reader": {
  6. "plugin": "drds",
  7. "parameter": {
  8. "datasource": "l_Drds_w",//数据源的名称,建议都添加数据源后进行同步
  9. "table": "bit_type_test",/数据来源的表名
  10. "where": "",
  11. "splitPk": "col2",//切分键
  12. "column": [
  13. "idbit"
  14. ]
  15. }
  16. },
  17. "writer": {
  18. "plugin": "odps",
  19. "parameter": {
  20. "datasource": "lzz_odps",//数据源的名称,建议都添加数据源后进行同步
  21. "table": "mytest",
  22. "truncate": true,
  23. "partition": "",//分区信息
  24. "column": [
  25. "id"
  26. ]
  27. }
  28. },
  29. "setting": {
  30. "speed": {
  31. "mbps": "1",//作业速率上限
  32. "concurrent": "1"//并发数
  33. },
  34. "errorLimit": {
  35. "record": "234"//错误记录数
  36. }
  37. }
  38. }
  39. }

运行同步任务,检查目标端的数据质量

运行结果,如下图所示:

1

注意:

同步任务保存后,直接单击 运行,任务会立刻运行或单击右边的 提交,将同步任务提交到调度系统中,调度系统会按照配置属性在从第二天开始自动定时执行,相关调度的配置请参见 调度配置介绍

其他的配置同步任务详细信息请参见下述文档: