离线同步任务支持FTP数据源,支持该数据源的抽取(Reader)导入(Writer)

使用前提


在使用之前需要在项目中心(新)完成FTP数据源的登记并测试通过。
数据源登记过程中,需要填写如下信息:

  • 数据源名称:FTP数据源的名称
  • 数据源标识:仅允许包含英文小写、数字、下划线,只允许英文小写开头,最大长度为64个字符。平台内唯一,保存数据源后数据标识不可修改
  • 归属项目:由于元数据中心是项目组级别,因此此处支持选择项目组下的项目,默认为当前项目名称
  • 负责人:默认为当前创建人员
  • 协助管理员:同负责人,有该数据源的管理权限,包括编辑、设置“源系统账号映射”。可在安全中心为自己或其他人设置该数据源的使用权限
  • IP地址:根据IP地址格式进行填写
  • 端口:填写端口号
  • 协议:支持ftp、sftp两种协议
  • 用户名:填写访问数据源的用户名
  • 密码:填写用户名所对应的密码
  • 自定义属性:支持添加数据源的其它配置
唯一性校验规则:基于端口+用户名进行校验。

数据源配置完成后,需点击测试连接按钮进行测试,测试通过后才可使用。
FTP - 图1

除了数据源需要准备之外,进行离线同步任务创建和数据源的使用都需要在安全中心-功能权限中添加相应的权限(可参考数据传输权限元数据中心权限)。

FTP作为数据来源


FTP作为数据来源时,数据去向的数据源类型会因为读取方式不同而有所差异,具体配置项如下:

FTP - 图2

  • 数据源:选择已经在数据源管理中登记的FTP数据源
  • 数据目录:输入目录路径,支持填写系统参数和参数组参数
  • 文件筛选:支持全部和部分两种选项。选择部分时,可在文件筛选弹框中,通过直接选择表达式选择选择文件。表达式选择支持通过修改时间文件名称最新文件的条件进行筛选。条件类型为文件名称时,支持正则匹配
    FTP - 图3
    • 全部:如果文件筛选为全部,则读取填写的数据目录下的全部文件(含子目录和子目录下的文件)
    • 部分:如果文件筛选为部分,仅支持筛选填写数据目录下的文件和一级子目录。需要注意的是,当读取方式为结构化时,仅读取筛选出的文件,不读取筛选出的子目录;当读取方式为非结构化时,读取筛选出的文件、子目录和子目录下的所有文件。
  • 读取方式:支持非结构化结构化两种读取方式。当选择非结构化时,数据去向端只支持FTPHDFS两种数据源类型

    • 读取方式为结构化时,配置项如下:

      • 文件格式:支持text、csv、excel、json、dbf、csv(旧)
      • 原始字符集:当文件格式为csv、txt、dbf时,支持原始字符集的配置。
      • 跳过行数:当文件格式为csv、txt、excel、csv(旧)时,跳过行数为必填项
      • 列分隔符
        1. 不可见字符请使用Unicode编码表示
        2. 使用下列字符:^、$、.、*、\、?、+、{ 、}、[、 ]、( 、)时,请在字符前添加"\"来表示。示例:“^”字符表示为“\^”
        3. 使用字符"|"时需要注意,当数据去向为Vertica且写入规则为Copy时,使用"|"进行表示,其余情况请使用"\|"表示
      • 行数校验:校验数据传输读取行数与校验文件记录的数据行数是否一致,如果不一致,任务置为失败。开启行数校验后,支持配置校验文件路径内容分隔符以及行数位置

        123.txt;220;20010101
        456.txt;300;20010101

        单文件校验信息按照单行进行展示,多文件校验信息分行进行展示(按相同内容格式),如上述例子。在上述例子中,内容分隔符为";"。其中,220和300是FTP两个文件的数据行数项,所以此处行数位置为2,此时文件总行数为520,因此校验读取行数时因与文件总行数(520)保持一致。

      • 特殊字符替换

        1. 不可见字符请使用Unicode编码表示
        2. 使用下列字符:|、^、$、.、*、\、?、+、{ 、}、[、 ]、( 、)时,请在字符前添加"\"来表示。示例:"|"字符表示为"\|"
        3. 需要替换多个特殊字符时,字符间请使用","分隔。不支持替换","字符
      • 并发读取

        1. FTP数据源协议为SFTP、文件格式为text、csv、excel、xml、json、dbf时,支持设置并发读取。
          2.如读取多个FTP文件,开启并发读取开关后会使用多线程进行数据抽取,线程并发数由“并发数”配置指定;如读取单个FTP文件,只能使用单线程进行数据抽取,并发读取开关不生效。
      • 并发数

        1. 如选择“文件数”,指每个文件会分别使用一个线程进行数据抽取;如选择“自定义”,实际线程并发数=min(文件数,填写的并发数)。
说明:csv支持更加规范的csv格式,因此包含csv(旧),当前两者并存的主要原因是考虑到历史用户使用问题,后续会对csv(旧)进行迁移并下线。

FTP作为数据去向


FTP作为数据去向时,支持配置如下:
FTP - 图4

  • 数据源:选择已经在数据源管理中登记的FTP数据源
  • 数据目录:输入目录路径,支持填写系统参数和参数组参数
  • 目录文件名:支持系统生成指定文件名。选择系统生成,则系统生成随机文件名称;选择指定文件名,支持填写常量、azkaban参数以及常量和azkaban参数,示例:aaa、${azkaban.flow.1.days.ago}、aaa${azkaban.flow.1.days.ago}。
    注意:升级数据传输-v3.5.1版本后新建的任务,生成文件时默认拼接文件扩展名作为文件名称后缀。为不影响历史任务的正常运行,升级数据传输-v3.5.1版本前已创建的任务生成文件时默认不拼接文件扩展名作为文件名称后缀。如无需拼接,可在任务-高级配置-自定义参数或节点参数中添加参数:appendFileExtension,值设为false。
  • 文件格式:支持text、json、csv、excel、csv(旧)
  • 原始字符集:当文件格式为csv、txt、dbf时,支持原始字符集的配置。
  • 同名文件:针对同名文件支持覆盖或者跳过处理策略
  • 生成校验文件:任务运行成功后会在目录下生成校验文件,文件名为“数据文件名称.ok”,如果已经存在则覆盖相关文件。校验文件默认包含:写入行数、写入数据量。支持通过高级设置自定义属性target.flagFileSuffix、target.flagFileItems、target.flagFileSeparator,用来分别配置文件名后缀、检验文件包含内容和检验文件内容分隔符
  • 前置操作:支持删除重命名三种选项。如果选择删除,需要填写需要删除的文件名;如果选择重命名,则需要填写旧文件路径和新文件路径
  • 后置操作:支持删除重命名三种选项。如果选择删除,需要填写需要删除的文件名;如果选择重命名,则需要填写旧文件路径和新文件路径