全部产品
阿里云办公

TableStore在数据集成里数据导入导出

更新时间:2017-09-04 18:58:28

通过数据集成导入数据

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

使用场景

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

准备工作

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

流程概述:

liu3.jpg | center

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

步骤 1:数据源端新建表

如何为数据源创建表可以使用建表语句或可以直接通过客户端建源数据。

步骤2:新添加数据源

下面以添加TableStore(OTS)的数据源为例:

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

  1. 以项目管理员身份进入数加管理控制台,单击项目列表下对应项目操作栏中的进入工作区
  2. 进入顶部菜单栏中的数据集成页面,单击左侧导航栏中的数据源
  3. 单击右上角的新增数据源,如下图所示:
    y01.jpg | center
  4. 在新增数据源弹出框中填写相关配置项,如下图所示:1针对TableStore数据源配置项的具体说明如下:

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

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

    数据源类型:当前选择的数据源类型ots。

    OTS Endpoint:Table Store 服务的Endpoint,一般的格式为:http://yyy.com。详细文档见:https://help.aliyun.com/document_detail/27296.html OTS 实例ID:TableStore 服务对应的实例名称。

    Access Id/Access Key:访问密钥AccessKey(AK)相当于登录密码

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

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

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

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

  1. 以项目管理员身份进入数加管理控制台,点击大数据开发套件下对应项目操作栏中的进入工作区
    k01.jpg | center

  2. 进入顶部菜单栏中的数据集成页面,选择脚本模式
    向导模式:向导模式是可视化界面配置同步任务, 一共涉及到五步,选择来源,选择目标,字段映射,通道控制,预览保存。在每个不同的数据源之间,这几步的界面可能有不同的内容,向导模式可以转换成脚本模式。
    脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,将相关的信息填写完整,但是脚本模式不能转化成向导模式。

  3. OTSreader脚本案例:

    1. {
    2. "configuration": {
    3. "setting": {
    4. "speed": {
    5. "concurrent": "1",//并发的数目
    6. "mbps": "1"//一个并发的速率上线是1MB/S
    7. },
    8. "errorLimit": {
    9. "record": "0"//错误记录数
    10. }
    11. },
    12. "reader": {
    13. "parameter": {
    14. "maxRetryTime": 3,//重试次数,不需要用户配置
    15. "range": {
    16. "split": [],
    17. // 导出数据的起始主键范围
    18. // 支持INF_MIN, INF_MAX, STRING, INT
    19. "begin": [
    20. {
    21. "type": "INF_MIN"//指定主键最小值
    22. }
    23. ],
    24. //导出数据的结束主键范围
    25. // 支持INF_MIN, INF_MAX, STRING, INT
    26. "end": [
    27. {
    28. "type": "INF_MAX"//指定主键最大值
    29. }
    30. ]
    31. },
    32. "retrySleepInMillionSecond": 100,//重试的间隔时间,以毫秒为单位,一般都不需要配置,用默认的值
    33. "column": [
    34. {
    35. "name": "id"//普通列
    36. },
    37. {
    38. "name": "name"//普通列
    39. },
    40. {
    41. "name": "year"//普通列
    42. }
    43. ],
    44. // 需要导出的列名,支持重复类和常量列,区分大小写
    45. // 常量列:类型支持STRING,INT,DOUBLE,BOOL和BINARY
    46. // 备注:BINARY需要通过Base64转换为对应的字符串传入插件
    47. "table": "person",// 导出数据表的表名
    48. "datasource": "ots_datasource"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    49. },
    50. "plugin": "ots"
    51. },
    52. "writer": {}
    53. }
  4. OTSWriter脚本案例:

    1. {
    2. "type": "job",
    3. "version": "1.0",
    4. "configuration": {
    5. "reader": {},
    6. "writer": {
    7. "parameter": {
    8. "writeMode": "PutRow",//写入模式,目前支持三种类型:单行操作、批量操作、范围读取
    9. "primaryKey": [//OTS 的主键信息
    10. {
    11. "name": "id",//主键列名
    12. "type": "STRING"//主键类型
    13. }
    14. ],
    15. "column": [
    16. {
    17. "name": "name",//列名
    18. "type": "string"//类型
    19. },
    20. {
    21. "name": "year",//列名
    22. "type": "int"//类型
    23. }
    24. ],
    25. "table": "person",//目标表名
    26. "datasource": "ots_datasource"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    27. },
    28. "plugin": "ots"
    29. }
    30. }
    31. }

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

  1. 运行结果:o01.jpg | center

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

其他数据源的reader和writer插件,参考下面文档:

本文导读目录