全部产品
阿里云办公

RDS-SQL Server通过数据集成导入/导出

更新时间:2017-11-01 13:13:27

简介

数据集成(Data Integration)是阿里集团对外提供的可跨异构数据存储系统的、可靠、安全、低成本、可弹性扩展的数据同步平台,为20+种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。详细的数据源类型列表请参见:支持数据源类型。所以用户可以通过数据集成(Data Integration)向云产品 RDS-SQL Server 进行数据的导入和数据导出

使用场景

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

准备工作

  1. 开通阿里云官网实名认证账号,并且创建好账号的访问秘钥,即 AccessKeys。
  2. 开通 MaxCompute,这样会自动产生一个默认的 ODPS 的数据源,并使用主账号登录大数据开发套件。
  3. 创建项目,用户可以在项目中协作完成工作流,共同维护数据和任务等,因此使用大数据开发套件之前需要先创建一个项目。
  4. 如您想通过子账号创建数据集成任务,可以赋予其相应的权限。关于上面的准备工作内容可以参考下面文档:开通阿里云主账号准备RAM子账号根据这个两个文档,可以完成数据同步的全部准备工作。

流程概述:

liu3.jpg | center

步骤1:数据源端新建表
步骤2:新添加数据源
步骤3:向导模式或脚本模式配置同步任务
步骤4:运行同步任务,检查目标端的数据质量

步骤 1:数据源端新建表

如何为数据源创建表可以使用建表语句,也可以直接通过客户端建表,所以不同的数据源可以参考相应的数据库的官方文档创建表格。

步骤 2:新添加数据源

注意:添加RDS数据源要添加相应的白名单,具体的内容请参考:添加白名单和安全组

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

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

  3. 单击新增数据源。

  4. 在新建数据源话弹出框中,选择数据源类型为RDS-SQL Server。

  5. 选择以RDS实例形式配置该SQL Server数据源。

    选择以RDS实例形式配置该SQL Server数据源:

    2 | center

    上图中的配置项具体说明如下:

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

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

    数据源类型:当前选择的数据源类型(RDS-SQL Server的RDS实例形式)。

    RDS实例ID:该SQL Server数据源的RDS实例ID。

    RDS实例购买者ID:该数据源对应的RDS实例购买者ID。

    数据库名:该数据源对应的数据库名。

    用户名/密码:数据库对应的用户名和密码。

  6. 完成上述信息项的配置后,单击测试连通性

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

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

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

通过数据集成导入数据以 MaxCompute 同步到 RDS-SQL Server 为例:

  1. 新建同步任务,如下图所示:1.jpg | center

  2. 选择来源:选择 MaxCompute (原ODPS) 数据源及源头表mysql,数据浏览默认是收起的,选择后点击下一步,如下图所示:o02.jpg | center

  3. 选择目标:o03.jpg | center

    导入前准备语句:执行数据同步任务之前率先执行的sql语句,目前向导模式只允许执行一条SQL语句,脚本模式可以支持多条SQL语句,例如清除旧数据。
    导入后准备语句:执行数据同步任务之后执行的sql语句,目前向导模式只允许执行一条SQL语句,脚本模式可以支持多条SQL语句,例如加上某一个时间戳。
    主键冲突:insert into 指当主键/唯一性索引冲突,数据集成视为脏数据进行处理。

  4. 字段隐射点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示。o04.jpg | center

    1. 可以输入常量,输入的值需要使用英文单引号包括,如'abc''123'等;
    2. 可以配合调度参数使用,如 ${bdp.system.bizdate} 等;
    3. 可以输入你要同步的分区列,如分区列有pt等;
    4. 如果您输入的值无法解析,则类型显示为'未识别'
    5. 不支持配置odps函数。
  5. 通道控制点击下一步,配置作业速率上限和脏数据检查规则,如下图所示:o05.jpg | center作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。
    作业并发数:作业速率上限=作业并发数*单并发的传输速率
    当作业速率上限已选定的情况下,应该如何选择作业并发数?
    ① 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响;
    ② 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数

  6. 预览保存:完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,点击保存,如下图所示:o06.jpg | center

    脚本模式配置同步任务

    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. ],
    12. "table": "mysql"//源端表名
    13. }
    14. },
    15. "writer": {
    16. "plugin": "sqlserver",
    17. "parameter": {
    18. "postSql": [],//导入后准备语句
    19. "datasource": "l_RDS_SqlServer",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    20. "column": [
    21. "id",
    22. "username"
    23. ],
    24. "table": "dbo.dianping",//目标端的表名
    25. "preSql": []//导入前准备语句
    26. }
    27. },
    28. "setting": {
    29. "speed": {
    30. "concurrent": "1",//并发数
    31. "mbps": "1"//同步能够达到的最大速度
    32. }
    33. }
    34. },
    35. "type": "job",
    36. "version": "1.0"
    37. }

通过数据集成导出数据以RDS-SQL Server 同步到 MaxCompute 为例:

  1. 选择来源:选择 RDS-SQL Server 数据源及源头表 dbo.dianping,数据浏览默认是收起的,选择后点击下一步,如下图所示:sy2.jpg | center

    过滤条件:将要同步数据的筛选条件,暂时不支持limit关键字过滤;SQL语法随着所选择的数据源不同而不同;点此查看系统参数文档。
    切分主键:RDS-SQL Server 进行数据抽取时,如果指定 splitPk,表示用户希望使用 splitPk 代表的字段进行数据分片,数据集成因此会启动并发任务进行数据同步,这样可以大大提供数据同步的效能 。推荐 splitPk 用户使用表主键,因为表主键通常情况下比较均匀,因此切分出来的分片也不容易出现数据热点;目前 splitPk 仅支持整型数据切分,不支持字符串、浮点、日期等其他类型。如果用户指定其他非支持类型,忽略 splitPk 功能,使用单通道进行同步;
    如果 splitPk 不填写,包括不提供 splitPk 或者 splitPk 值为空,数据同步视作使用单通道同步该表数据 。

  2. 选择目标:选择 MaxCompute 数据源及目标表ll,选择后点击下一步,如下图所示:sm3.jpg | center

  3. 映射字段:点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示sy4.jpg | center

  4. 通道控制点击下一步,配置作业速率上限和脏数据检查规则,如下图所示:st5.jpg | center

  5. 预览保存:完成以上配置后,上下滚动鼠标可查看任务配置,如若无误,点击保存,如下图所示:sy6.jpg | center

    脚本模式配置同步任务

    1. {
    2. "configuration": {
    3. "reader": {
    4. "plugin": "sqlserver",
    5. "parameter": {
    6. "datasource": "l_RDS_SqlServer",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    7. "column": [
    8. "id",
    9. "username"
    10. ],
    11. "where": "id<3",//过滤条件
    12. "splitPk": "id",//切分键
    13. "table": "dbo.dianping"//源端表名
    14. }
    15. },
    16. "writer": {
    17. "plugin": "odps",
    18. "parameter": {
    19. "partition": "p_month=${bdp.system.bizdate}",//分区
    20. "truncate": true,
    21. "datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    22. "column": [
    23. "id",
    24. "name"
    25. ],
    26. "table": "ll"//目标端的表名
    27. }
    28. },
    29. "setting": {
    30. "speed": {
    31. "concurrent": "1",//并发数
    32. "mbps": "1"//同步能够达到的最大速度
    33. }
    34. }
    35. },
    36. "type": "job",
    37. "version": "1.0"
    38. }

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

  1. 直接运行同步任务结果:o01.jpg | center

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

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

本文导读目录