通过数据集成导入和导出数据

数据集成(Data Integration)是阿里集团对外提供的可跨异构数据存储系统的、可靠、安全、低成本、可弹性扩展的数据同步平台,为20+种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。

详细的数据源类型列表请参见:支持数据源类型。用户可以通过数据集成(Data Integration)对云产品OSS进行数据的导入和导出。

数据导入和导出均有以下两种实现方式:

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

  • 脚本模式:进入脚本界面你可以选择相应的模板,此模板包含了同步任务的主要参数,然后补全剩余的参数也能创建同步任务。但是脚本模式不能转化成向导模式。

本文主要介绍如何将MaxCompute中的数据导入到OSS中,将OSS中的数据导出到MaxCompute中操作步骤与导入类似,因此本文将不再赘述数据如何导出。
说明
  • 只有项目管理员角色才能够新建数据源,其他角色的成员仅能查看数据源。

  • 如您想用子账号创建数据集成任务,需赋予子账号相应的权限。具体请参考:开通阿里云主账号设置子账号

操作步骤

  1. 以项目管理员身份进入数加管理控制台,单击下项目列表下对应项目操作栏中的进入工作区。如何创建项目请参考创建项目
  2. 进入顶部菜单栏中的数据集成页面,单击左侧导航栏中的数据源
  3. 单击右上角的新增数据源,如下图所示:

  4. 在新增数据源对话框中填写相关配置项,针对 OSS 数据源配置项的具体说明如下:
    • 数据源名称:由英文字母、数字、下划线组成且需以字符或下划线开头,长度不超过 60 个字符 。
    • 数据源描述:对数据源进行简单描述,不得超过 80 个字符 。
    • 数据源类型:当前选择的数据源类型 OSS。
    • 经典网络 :IP 地址由阿里云统一分配,配置简便,使用方便,适合对操作易用性要求比较高,需要快速使用 ECS 的用户 。
    • 专有网络:辑隔离的私有网络,用户可以自定义网络拓扑和 IP 地址,支持通过专线连接,适合对网络管理比较熟悉的用户 。
    • Endpoint:OSS Endpoint信息,格式为:http://region.aliyuncs.com,OSS 服务的 Endpoint和 region 有关,访问不同的 region 时,需要填写不同的域名 。
    • Bucket:相应的 OSS Bucket 信息,存储空间,是用于存储对象的容器,可以创建一个或者多个存储空间,然后向每个存储空间中添加一个或多个文件。此处填写的存储空间将在数据同步任务里找到相应的文件,其他的 Bucket 没有添加的则不能搜索其中的文件 。
    • AccessID/AceessKey:获取方法请参考获取Access Key和AccessKeyId
  5. 完成上述信息项的配置后,单击测试连通性。测试通过单击确定
    说明
    其他的数据源的配置请参见:数据源配置
  6. 新建同步任务,单击数据集成下的同步任务,并选择向导模式,如下图所示:
  7. 数据源选择 MaxCompute (原ODPS) 数据及源头表选择表mytest,数据浏览默认是收起的,单击下一步,如下图所示:

  8. 导入目标选择OSS为数据源,并选择相应的Object,配置项说明如下所示:
    • 数据源:选择内容跟填写的数源名称保持一致。
    • object 前缀:填写object路径不要包含bucket名,直接取bucket后面的内容,如上图显示bucket 为 test118 的 test文件夹,这里object直接填text。
    • 列分隔符:读取的字段分隔符,默认值为“,”。
    • 编码格式:文件的编码配置,默认值为 utf-8 。
    • null值:文本文件中无法使用标准字符串定义 null(空指针),数据同步系统提供 nullFormat 定义哪些字符串可以表示为 null。

      具体填写页面如下图所示:



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

    说明

    单击添加一行

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

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

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

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

    • 不支持配置MaxCompute函数。

  10. 单击下一步进入通道控制,配置作业速率上限和脏数据检查规则,如下图所示:

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

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

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

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

  11. 单击下一步预览保存任务。上下滚动鼠标可查看任务配置,如若无误,单保存,如下图所示:

  12. 同步任务保存后,单击运行任务会立刻运行或单击右边的提交,将同步任务提交到调度系统中,调度系统会按照配置属性从第二天开始自动定时执行,任务运行结束即可将MaxCompute中的数据导入到OSS中。运行后的提示界面如下如所示。

    相关调度的配置请参考调度配置介绍

    您在新建同步任务的时候也可以选择使用脚本模式配置同步任务来进行数据导入:

    {
      "configuration": {
        "reader": {
          "plugin": "odps",
          "parameter": {}
        },
        "writer": {
          "plugin": "oss",
          "parameter": {
            "fieldDelimiterOrigin": ",",
            "datasource": "l_OSS_w",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
            "column": [//列名
              "0",
              "1",
              "2",
              "3"
            ],
            "writeMode": "truncate",//写入模式
            "encoding": "UTF-8",//编码格式
            "fieldDelimiter": ",",//分隔符
            "object": "test"//object路径
          }
        },
        "setting": {
          "speed": {
            "concurrent": 7,//并发的数目
            "mbps": 9//一个并发的速率上线是9MB/S
          }
        }
      },
      "type": "job",
      "version": "1.0"
    }
    说明
    使用向导模式将OSS中的数据导出到MaxCompute中的步骤与上述将MaxCompute中的数据导入到中OSS中类似。