全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
数据集成

ADS通过数据集成导入数据

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

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

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

应用场景

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

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

流程概述

liu3.jpg

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

步骤2:新增数据源。

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

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

准备工作

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

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

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

    注意

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

操作步骤

数据源端新建表

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

新增数据源

AnalyticDB(简称 ADS) 提供了其他数据源向 AnalyticDB 写入的功能,但不能读取数据,支持数据集成中的向导模式和脚本模式。

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

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

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


  4. 在新建数据源弹出框中,选择数据源类型为 AnalyticDB(ADS)。

  5. 配置 AnalyticDB 数据源的各个信息项。如下图所示:

    1

    配置项说明:

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

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

    • 连接 Url:ADS 连接信息,格式为:serverIP:Port。

    • Schema:相应的 ADS Schema 信息。

    • AccessID/AceessKey:访问密钥 AccessKey(AK) 相当于登录密码。

  6. 单击 测试连通性

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

    提供测试连通性能力,可以判断输入的 project/AK 信息是否正确 。

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

以 MySQL 同步到 AnalyticDB(对应数据源名称 ADS)为例:

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

    1

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

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

  2. 选择来源。

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

    1

  3. 选择目标。

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

    1

    • 导入模式:即上述参数说明中的 writeMode,支持 Load Data(批量导入)和Insert Ignore(实时插入)两种模式。

    • 清理规则

      • 写入前清理已有数据:导数据之前,清空表或者分区的所有数据,相当于 insert overwrite。

      • 写入前保留已有数据:导数据之前不清理任何数据,每次运行数据都是追加进去的,相当于 insert into。

  4. 映射字段。

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

    1

  5. 通道控制。

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

    1

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

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

    注意

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

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

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

  6. 预览保存。

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

脚本模式配置同步任务示例:

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "setting": {
  6. "errorLimit": {
  7. "record": "0"
  8. },
  9. "speed": {
  10. "mbps": "1",//一个并发的速率上线是1MB/S
  11. "concurrent": "1"//并发的数目
  12. }
  13. }
  14. },
  15. "reader": {
  16. "plugin": "mysql",
  17. "parameter": {
  18. "datasource": "xxx",//数据源名,建议数据源都添加数据源后进行同步任务
  19. "table": "k",//mysql源端表名
  20. "splitPk": "id",//切分键:源数据表中某一列作为切分键,切分之后可进行并发数据同步,目前仅支持整型字段;建议使用主键或有索引的列作为切分键
  21. "column": [
  22. "int"
  23. ],//列名
  24. "where": "id>100"请参考相应的SQL语法填写where过滤语句(不需要填写where关键字)该过滤 语句通常作为增量同步
  25. }
  26. },
  27. "writer": {
  28. "plugin": "ads",
  29. "parameter": {
  30. "datasource": "yyy",//数据源名,建议数据源都添加数据源后进行同步任务
  31. "table": "dd1",//ads目标表名
  32. "partition": "id",//分区
  33. "overWrite": "true",//写入规则
  34. "batchSize": "256",//同步的批量大小
  35. "writeMode": "load",//写入模式load
  36. "column": [
  37. "*"
  38. ]
  39. }
  40. }
  41. }
  42. }

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

运行结果,如下图所示:

1

注意:

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

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

本文导读目录