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

使用数据集成同步数据

更新时间:2017-08-11 09:07:19

数据集成(Data Integration) 是阿里云大数据服务提供的数据同步平台。该平台为 20 多种数据源提供不同网络环境下的离线 (全量/增量) 数据进出通道,可跨异构数据存储系统、可弹性扩展、可靠、安全、成本低。查看 支持数据源类型 了解可用的数据源。

本文介绍了使用数据集成向 HybridDB for PostgreSQL 进行 数据导入数据导出 的实现方法,分别提供在 向导模式(即可视化界面引导)下的操作步骤 和 脚本模式(即模板参数配置) 下的代码示例。

使用该文档,您可以了解数据集成在 HybridDB for PostgreSQL 中的 使用场景,熟悉以下操作:

  1. 在数据集成和 HybridDB for PostgreSQL端部署 准备工作
  2. 在数据集成中 新增 HybridDB for PostgreSQL 数据源
  3. 使用数据集成向 HybridDB for PostgreSQL 导入数据导出数据

使用场景

使用数据集成中的同步任务,HybridDB for PostgreSQL 可以:

  • 将数据同步到到其他的数据源里,并对数据进行相应处理。

  • 将处理好的其他数据源数据同步到 HybridDB for PostgreSQL 中。

准备工作

分别在数据集成和 HybridDB for PostgreSQL 端完成以下准备工作。

数据集成

依次完成以下操作:

  1. 开通阿里云官网实名认证账号,并且创建好账号的访问秘钥,即 AccessKeys。

  2. 开通 MaxCompute,系统会自动产生一个默认的 ODPS 的数据源,并使用主账号登录大数据开发套件。

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

  4. 如您想通过子账号创建数据集成任务,可以赋予其相应的权限。

以上具体操作请参考 开通阿里云主账号准备 RAM 子账号

HybridDB for PostgreSQL

完成以下准备工作:

  • 在进行数据导入之前,先通过 PostgreSQL 客户端创建好 HybridDB for PostgreSQL 中待迁入数据的目标数据库和表。

  • 若待迁出数据的源数据库为 HybridDB for PostgreSQL,应在 HybridDB for PostgreSQL 管理控制台进行 IP 白名单设置。

    如下图所示,登录 HybridDB for PostgreSQL 控制台,选择相应实例,在 数据安全性 页面的 白名单设置 子页下,单击 添加白名单分组。添加以下 IP 地址:10.152.69.0/24,10.153.136.0/24,10.143.32.0/24,120.27.160.26,10.46.67.156,120.27.160.81,10.46.64.81,121.43.110.160,10.117.39.238,121.43.112.137,10.117.28.203,118.178.84.74,10.27.63.41,118.178.56.228,10.27.63.60,118.178.59.233,10.27.63.38,118.178.142.154,10.27.63.15,100.64.0.0/8

    添加IP地址

    注意:若使用自定义资源组调度 HybridDB for PostgreSQL 数据同步任务,必须把自定义资源组的机器 ip 也加到 HybridDB for PostgreSQL 的白名单中。

新增数据源

使用数据集成向 HybridDB for PostgreSQL 同步数据前,项目管理员应在数据集成中新增 HybridDB for PostgreSQL 数据源,具体步骤如下:

  1. 以开发者身份登录阿里云数加平台,依次选择 大数据开发套件 > 管理控制台,单击对应项目操作栏中的 进入工作区

  2. 单击顶部菜单栏中数据集成模块的数据源。

  3. 单击 新增数据源

  4. 在新建数据源弹出框中,选择 数据源类型PostgreSQL

  5. 选择以 JDBC 形式配置该 PostgreSQL 数据源。

    配置 PostgreSQL 数据源

    其中,

    • 数据源名称:由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符 。
    • 数据源描述: 对数据源进行简单描述,不超过 80 个字符 。
    • 数据源类型:当前选择的数据源类型 PostgreSQL。
    • 网络类型:当前选择的网络类型。
    • JDBCUrl:JDBC 连接信息,格式为:jdbc:PostgreSQL://IP:Port/database。
    • 用户名/密码:数据库对应的用户名和密码。
  6. 完成配置后,单击 测试连通性

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

至此,您已完成 HybridDB for PostgreSQL 数据源的添加。

通过数据集成导入数据

下文提供两种配置同步任务的方法,供您选择:

  • 若使用可视化界面引导操作,请参照 向导模式配置同步任务。包含以下步骤:选择来源,选择目标,字段映射,通道控制,预览保存。不同的数据源之间,每一步的界面可能有不同的内容。向导模式可以转换成脚本模式。

  • 若使用模板参数配置操作,请参照 脚本模式配置同步任务。在脚本界面选择相应的模板,模板包含了同步任务的主要参数,配置参数信息以实现同步任务配置。脚本模式不能转化成向导模式。

前提条件

已参照 新增数据源 在数据集成中新增 HybridDB for PostgreSQL 数据源。

向导模式配置同步任务

操作步骤如下:

  1. 选择以 向导模式 新建同步任务,如下图所示:

    新建同步任务

  2. 选择数据来源,如下图所示:

    选择来源

    其中,

    • 数据源:选择 odps_first(odps),即 MaxCompute。
    • :选择 hpg
    • 数据预览:默认是收起的,单击可展开。

    完成后单击 下一步

  3. 选择目标,如下图所示:

    选择目标

    其中,

    • 数据源:选择 I_PostGreSql(postgresql)
    • 表:选择 public.person
    • 导入前准备语句:输入执行数据同步任务之前执行的 SQL 语句。

      向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如清除旧数据。

    • 导入后准备语句:输入执行数据同步任务之后执行的 SQL 语句。

      向导模式只允许执行一条 SQL 语句,脚本模式可以支持多条 SQL 语句,例如加上某一个时间戳。

    • 主键冲突:选择 Insert Into,当主键/唯一性索引冲突,数据集成视为脏数据进行处理。

    完成后单击 下一步

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

    映射字段

    说明

    • 可以输入常量,输入的值需要使用英文单引号包括,如 ‘abc’、’123’等;
    • 可以配合调度参数使用,如 ${bdp.system.bizdate} 等;
    • 可以输入你要同步的分区列,如分区列有 pt 等;
    • 如果您输入的值无法解析,则类型显示为 ‘未识别’;
    • 不支持配置 odps 函数。

    完成后单击 下一步

  5. 通道控制。配置作业速率上限和脏数据检查规则,如下图所示:

    通道控制

    其中,

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

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

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

      • 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响。
      • 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数。
  6. 预览保存。完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存,如下图所示:

    预览保存

  7. 获取结果。同步任务保存后,

    • 单击 运行任务 会立刻运行。
    • 单击右边的 提交,会将同步任务提交到调度系统中。

      调度系统会按照配置属性在从第二天开始自动定时执行。相关调度的配置请参考 调度配置介绍

    运行结果如下图所示:

    结果

    至此,您已完成在向导模式下创建数据同步任务向 HybridDB for PostgreSQL 导入数据。

脚本模式配置同步任务

代码样例如下:

  1. {
  2. "configuration": {
  3. "reader": {
  4. "plugin": "odps",
  5. "parameter": {
  6. "partition": "pt=${bdp.system.bizdate}",//分区信息
  7. "datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  8. "column": [
  9. "id",
  10. "name",
  11. "year",
  12. "birthdate",
  13. "ismarried",
  14. "interest",
  15. "salary"
  16. ],
  17. "table": "hpg"//源端表名
  18. }
  19. },
  20. "writer": {
  21. "plugin": "postgresql",
  22. "parameter": {
  23. "postSql": [],//导入后准备语句
  24. "datasource": "l_PostGreSql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  25. "column": [
  26. "id",
  27. "name",
  28. "year",
  29. "birthdate",
  30. "ismarried",
  31. "interest",
  32. "salary"
  33. ],
  34. "table": "public.person",//目标表名
  35. "preSql": []//导入前准备语句
  36. }
  37. },
  38. "setting": {
  39. "speed": {
  40. "concurrent": 7,//并发数
  41. "mbps": 7//数率最高上限
  42. }
  43. }
  44. },
  45. "type": "job",
  46. "version": "1.0"
  47. }

通过数据集成导出数据

下文提供两种配置同步任务的方法,供您选择:

前提条件

已参照 新增数据源 在数据集成中新增 HybridDB for PostgreSQL 数据源。

向导模式配置同步任务

操作步骤如下:

  1. 选择以 向导模式 新建同步任务,如下图所示:

    新建同步任务

  2. 选择来源,如下图所示:

    选择来源

    其中,

    • 数据源:选择 I_PostGreSql(postgresql)
    • 表:选择 public.person
    • 数据预览:默认是收起的,单击可展开。
    • 数据过滤:设置要同步数据的筛选条件。PostgreSQLReader 根据指定的 column、table、where 条件拼接 SQL,并根据这个 SQL 进行数据抽取。

      • 例如在做测试时,可以将 where 条件指定实际业务场景,往往会选择当天的数据进行同步,可以将 where 条件指定为 id > 2 and sex = 1 。
      • where 条件可以有效地进行业务增量同步。
      • where 条件不配置或者为空,视作全表同步数据 。
    • 切分键:PostgreSQLReader 进行数据抽取时,如果指定 splitPk,表示用户希望使用 splitPk 代表的字段进行数据分片,数据集成因此会启动并发任务进行数据同步,这样可以大大提供数据同步的效能 。

      • 推荐 splitPk 用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点;splitPk 仅支持整型数据切分,不支持字符串、浮点、日期等其他类型。
      • 如果用户指定其他非支持类型,忽略 splitPk 功能,使用单通道进行同步;如果 splitPk 不填写,包括不提供 splitPk 或者 splitPk 值为空,数据同步视作使用单通道同步该表数据 。
  3. 选择目标,如下图所示:

    选择目标

    其中,

    • 数据源:选择 odps_first(odps),即 MaxCompute。
    • 表:选择 hpg

    完成后单击 下一步

  4. 映射字段。对字段映射关系进行配置,左侧 源头表字段 和右侧 目标表字段 为一一对应的关系,如下图所示。

    映射字段

    完成后单击 下一步

  5. 通道控制。配置作业速率上限和脏数据检查规则,如下图所示:

    通道控制

    完成后单击 下一步

  6. 预览保存。完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,单击 保存。运行结果如下图所示:

    预览保存

    至此,您已完成在向导模式下创建数据同步任务从 HybridDB for PostgreSQL 导出数据。

脚本模式配置同步任务

代码样例如下:

  1. {
  2. "configuration": {
  3. "reader": {
  4. "plugin": "postgresql",
  5. "parameter": {
  6. "datasource": "l_PostGreSql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  7. "table": "public.person",//源端表名
  8. "where": "",//过滤条件
  9. "column": [
  10. "id",
  11. "name",
  12. "year",
  13. "birthdate",
  14. "ismarried",
  15. "interest",
  16. "salary"
  17. ],
  18. "splitPk": ""//切分键
  19. }
  20. },
  21. "writer": {
  22. "plugin": "odps",
  23. "parameter": {
  24. "datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  25. "column": [
  26. "id",
  27. "name",
  28. "year",
  29. "birthdate",
  30. "ismarried",
  31. "interest",
  32. "salary"
  33. ],
  34. "table": "hpg",//目标表名
  35. "truncate": true,
  36. "partition": "pt=${bdp.system.bizdate}"//分区信息
  37. }
  38. },
  39. "setting": {
  40. "speed": {
  41. "mbps": 5,//数率最高上限
  42. "concurrent": 5//并发数
  43. }
  44. }
  45. },
  46. "type": "job",
  47. "version": "1.0"
  48. }
本文导读目录