全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
数据集成

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

更新时间:2017-09-26 00:08:22

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

应用场景

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

准备工作

  1. 拥有阿里云官网实名认证账号,并且创建好账号 Access Key。

  2. 开通 MaxCompute、使用主账号登录大数据开发套件。

  3. 使用创建项目。

  4. 如您想让子账号也有创建数据集成任务,可以给其赋予相应的权限。详情请参见 开通阿里云主账号准备 RAM 子账号

操作步骤

OSS 导入/导出数据的流程,如下图所示:

1

数据源端新建表

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

新增数据源

以添加 OSS 的数据源为例,操作如下:

注意:

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

  1. 以项目管理员身份进入 大数据开发套件管理控制台,单击 项目列表 下对应项目操作栏中的 进入工作区。

  2. 进入顶部菜单栏中的 数据集成 页面,单击左侧导航栏中的 数据源

  3. 单击右上角的 新增数据源,如下图所示:

    1

  4. 填写新增数据源弹出框中的各配置项,如下图所示:

    1

    配置项说明如下:

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

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

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

    • 网络类型

      • 经典网络 : IP 地址由阿里云统一分配,配置简便,使用方便,适合对操作易用性要求比较高,需要快速使用 ECS 的用户。

      • 专有网络 : 逻辑隔离的私有网络,您可以自定义网络拓扑和 IP 地址,支持通过专线连接,适合对网络管理比较熟悉的用户。

    • Endpoint:OSS Endpoint 信息,格式为:http://oss-region.aliyuncs.com,OSS 服务的 Endpoint和 region 有关,访问不同的 region 时,需要填写不同的域名。

      您可以从 OSS 的管控台找到访问域名模块,里面有对应的 Endpoint 信息,如下图所示:

      1

    • Bucket:相应的 OSS Bucket 信息,存储空间,是用于存储对象的容器,可以创建一个或者多个存储空间,然后向每个存储空间中添加一个或多个文件。此处填写的存储空间将在数据同步任务里找到相应的文件,其他的 Bucket 没有添加的则不能搜索其中的文件。

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

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

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

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

向导模式配置同步任务

通过数据集成 导入 数据,以向导模式将 MaxCompute(原 ODPS)数据同步到 OSS 为例:

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

    1

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

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

  2. 选择来源。

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

    1

  3. 选择目标。

    选择 OSS 数据源同步到 di-broker bucket的为 text文件夹里mytext.txt文件里,如下图所示:1

    选择后单击 下一步,如下图所示:1配置项说明如下:

    • 数据源:选择内容跟填写的数源名称保持一致。

    • object 前缀:填写 object 路径不要包含 bucket 名,直接取 bucket 后面的内容,如上图显示 bucket 为 test118 的 test 文件夹,这里 object 直接填 text。

    • 列分隔符:读取的字段分隔符,默认值为“,”。

    • 编码格式:文件的编码配置,默认值为 utf-8。

    • null 值:文本文件中无法使用标准字符串定义 null(空指针),数据同步系统提供 nullFormat 定义哪些字符串可以表示为 null。

  4. 映射字段。

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

    1

    添加一行有如下功能:

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

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

    • 可以输入你要同步的分区列,如分区列有pt等。

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

    • 不支持配置 MaxCompute 函数。

  5. 通道控制。

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

    1

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

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

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

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

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

  6. 预览保存。

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

脚本模式配置同步任务

  1. {
  2. "configuration": {
  3. "reader": {
  4. "plugin": "odps",
  5. "parameter": {}
  6. },
  7. "writer": {
  8. "plugin": "oss",
  9. "parameter": {
  10. "fieldDelimiterOrigin": ",",
  11. "datasource": "l_OSS_w",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  12. "column": [//列名
  13. "0",
  14. "1",
  15. "2",
  16. "3"
  17. ],
  18. "writeMode": "truncate",//写入模式
  19. "encoding": "UTF-8",//编码格式
  20. "fieldDelimiter": ",",//分隔符
  21. "object": "test"//object路径
  22. }
  23. },
  24. "setting": {
  25. "speed": {
  26. "concurrent": 7,//并发的数目
  27. "mbps": 9//一个并发的速率上线是9MB/S
  28. }
  29. }
  30. },
  31. "type": "job",
  32. "version": "1.0"
  33. }

通过数据集成 导出 数据,以 OSS 同步到 MaxCompute 为例:

  1. 选择来源。

    选择 OSS 数据源及源头表mytext.txt,数据浏览默认是收起的,选择后单击 下一步,如下图所示:1object:OSS 的 object 信息,注意支持填写多个 Object(向导模式 OSS 作为数据来源可以直接单击 添加 object+ 按钮添加 object)。填写从 OSS 数据源文件的读取路径,其中不要填写 bucket 的名称。object前缀:text/mytext.txt

    示例如下:
    将 OSS 数据源里的 bucket 为 di-brokertext 文件夹 mytext.txt 文件同步到其他的数据源里,则 object 只需填写 text/mytext.txt,不要带上 bucket 名称。如果要同步多个以 my 开头的文件可以将 object 填写为 text/my*,配置通配符的形式,如下图所示:

    1

  2. 选择目标。

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

    1

  3. 映射字段。

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

    1

    注意:

    • 添加列时要注意中英文输入,这边支持 英文 输入。

    • 源头表字段默认显示5列,数据类型旁边 编辑 功能可以添加相应的列,编辑格式是 列序号:字段类型(如0 : string),直接单击空白添加成功。

  4. 通道控制。

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

    1

  5. 预览保存。

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

    1

脚本模式配置同步任务

  1. {
  2. "type": "job",
  3. "version": "1.0",
  4. "configuration": {
  5. "reader": {
  6. "plugin": "oss",
  7. "parameter": {
  8. "datasource": "l_OSS_w",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
  9. "fieldDelimiterOrigin": ",",
  10. "encoding": "UTF-8",//编码格式
  11. "nullFormat": "",//定义字符串表示为 nul
  12. "compress": "",//表示压缩格式
  13. "skipHeader": "false",//是否包含表头
  14. "object": [
  15. "text/mytext.txt"
  16. ],
  17. "fieldDelimiter": ",",//列分隔符
  18. "column": [
  19. {
  20. "type": "string",
  21. "index": 0
  22. },
  23. {
  24. "type": "string",
  25. "index": 1
  26. }
  27. ]
  28. }
  29. },
  30. "writer": {}
  31. }

运行同步任务

运行同步任务的结果:

1

注意:

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

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

本文导读目录