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

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

更新时间:2017-08-29 17:58:12

简介

数据集成(Data Integration)是阿里巴巴集团提供的数据同步平台。该平台具备可跨异构数据存储系统、可靠、安全、低成本、可弹性扩展等特点,可为20多种数据源提供不同网络环境下的离线(全量/增量)数据进出通道。详细的数据源类型列表请参考支持数据源类型。本文介绍如何通过数据集成在 SFTP 中进行数据导入导出

使用场景

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

准备工作

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

流程概述:

liu3.jpg

第一步:数据源端新建表
第二步:添加数据源
第三步:向导模式或脚本模式配置同步任务
第四步:运行同步任务,检查目标端的数据质量

第一步:数据源端新建表

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

第二步:添加数据源

下面以添加 SFTP 的数据源为例:

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

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

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

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

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

    网络类型:当前选择的网络类型。

    Portocol:目前仅支持FTP和SFTP协议。

    Host:对应FTP主机的IP地址。

    Port:若选择的是FTP协议则端口默认为21,若选择的是SFTP协议则端口默认为22。

    用户名/密码:访问该FTP服务的账号密码。

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

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

测试连通性说明在经典网络下,能够提供测试连通性能力,可以判断输入的Host,Port,用户名和密码信息是否正确。专有网络下,目前不支持数据源连通性测试。

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

第三步:向导模式或脚本模式配置同步任务

通过数据集成的向导模式将 Mysql数据同步到 SFTP 为例:

  1. 数据集成页面,新建同步任务,如下图所示:k01.jpg

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

  2. 选择来源:选择 Mysql 数据源及源头表 a3,数据浏览默认是收起的,选择后点击下一步,如下图所示:m02.jpg
  3. 选择目标:选择 sftp 数据源及目标表 lzz,选择后点击下一步,如下图所示:m03.jpg
  4. 映射字段:点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示m04.jpg

  5. 通道控制点击下一步,配置作业速率上限和脏数据检查规则,如下图所示:m05.jpg作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。作业并发数:作业速率上限=作业并发数*单并发的传输速率当作业速率上限已选定的情况下,应该如何选择作业并发数?① 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响;② 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数

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

    脚本模式配置同步任务

    1. {
    2. "type": "job",
    3. "version": "1.0",
    4. "configuration": {
    5. "reader": {
    6. "plugin": "mysql",
    7. "parameter": {
    8. "datasource": "lzz_mysql",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    9. "where": "",
    10. "splitPk": "",//切分键
    11. "connection": [
    12. {
    13. "table": [
    14. "`a3`"//源端表名
    15. ],
    16. "datasource": "lzz_mysql"//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    17. }
    18. ],
    19. "connectionTable": "`a3`",
    20. "column": [
    21. "id"//源端表的映射的列
    22. ]
    23. }
    24. },
    25. "writer": {
    26. "plugin": "ftp",
    27. "parameter": {
    28. "datasource": "lzz_sftp",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    29. "path": "/home/perfect_plan/data",//远程 FTP 文件系统的路径信息
    30. "fileName": "lzz",//写入的文件名
    31. "fieldDelimiterOrigin": ",",
    32. "encoding": "UTF-8",//读取文件的编码配置。
    33. "writeMode": "truncate",//写入模式
    34. "fieldDelimiter": ",",//读取的字段分隔符
    35. "column": [
    36. "0"
    37. ]
    38. }
    39. },
    40. "setting": {
    41. "speed": {
    42. "mbps": 9,//作业速率上限
    43. "concurrent": 8//作业并发数
    44. }
    45. }
    46. }
    47. }

向导模式配置 SFTP 同步到 MaxCompute 为例:

  1. 数据集成页面,新建同步任务,如下图所示:k01.jpg

  2. 选择来源:选择 SFTP 数据源及源头表 data,数据浏览默认是收起的,选择后点击下一步,如下图所示:s02.jpg

  3. 选择目标:选择 MaxCompute 数据源及目标表 a1,选择后点击下一步,如下图所示:s03.jpg
  4. 映射字段:点击下一步,选择字段的映射关系。需对字段映射关系进行配置,左侧“源头表字段”和右侧“目标表字段”为一一对应的关系 ,如下图所示s04.jpg

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

    作业速率上限:是指数据同步作业可能达到的最高速率,其最终实际速率受网络环境、数据库配置等的影响。
    作业并发数:作业速率上限=作业并发数*单并发的传输速率
    当作业速率上限已选定的情况下,应该如何选择作业并发数?
    ① 如果你的数据源是线上的业务库,建议您不要将并发数设置过大,以防对线上库造成影响;
    ② 如果您对数据同步速率特别在意,建议您选择最大作业速率上限和较大的作业并发数

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

    脚本模式配置同步任务

    1. {
    2. "type": "job",
    3. "version": "1.0",
    4. "configuration": {
    5. "reader": {
    6. "plugin": "ftp",
    7. "parameter": {
    8. "datasource": "l_ftp_w",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    9. "fieldDelimiterOrigin": ",",
    10. "encoding": "UTF-8",//读取文件的编码配置。
    11. "nullFormat": "",//文本文件中无法使用标准字符串定义 null(空指针),数据同步提供nullFormat定义哪些字符串可以表示为 null 。
    12. "compress": "",//压缩格式
    13. "skipHeader": "false",//类 CSV 格式文件可能存在表头为标题情况,需要跳过 。默认不跳过,压缩文件模式下不支持 skipHeader 。
    14. "path": [
    15. "/home/perfect_plan/data"//远程 FTP 文件系统的路径信息
    16. ],
    17. "fieldDelimiter": ",",//读取的字段分隔符
    18. "column": [
    19. {
    20. "name": 0,//列名
    21. "index": 0,//第0列
    22. "type": "string"//数据类型
    23. }
    24. ]
    25. }
    26. },
    27. "writer": {
    28. "plugin": "odps",
    29. "parameter": {
    30. "datasource": "odps_first",//数据源名,建议数据源都先添加数据源后再配置同步任务,此配置项填写的内容必须要与添加的数据源名称保持一致
    31. "table": "a1",
    32. "truncate": true,
    33. "partition": "pt=${bdp.system.bizdate}",//分区信息
    34. "column": [
    35. "col1"//目标列名
    36. ]
    37. }
    38. },
    39. "setting": {
    40. "speed": {
    41. "mbps": 5,//作业速率上限
    42. "concurrent": 5//作业并发数
    43. }
    44. }
    45. }
    46. }

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

  1. 直接运行同步任务结果:
    m01.jpg

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

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

本文导读目录