更新时间:2024-01-16 GMT+08:00

源端为FTP/SFTP

JSON样例

"from-config-values": {
        "configs": [
          {
            "inputs": [
              {
                "name": "fromJobConfig.inputDirectory",
                "value": "/sftpfrom/from_sftp.csv"
              },
              {
                "name": "fromJobConfig.inputFormat",
                "value": "CSV_FILE"
              },
              {
                "name": "fromJobConfig.columnList",
                "value": "1&2&3&4&5&6&7&8&9&10&11&12"
              },
              {
                "name": "fromJobConfig.fieldSeparator",
                "value": ","
              },
              {
                "name": "fromJobConfig.regexSeparator",
                "value": "false"
              },
              {
                "name": "fromJobConfig.firstRowAsHeader",
                "value": "false"
              },
              {
                "name": "fromJobConfig.encodeType",
                "value": "UTF-8"
              },
              {
                "name": "fromJobConfig.fromCompression",
                "value": "NONE"
              },
              {
                "name": "fromJobConfig.splitType",
                "value": "FILE"
              }
            ],
            "name": "fromJobConfig"
          }
        ]
      }

参数说明

FTP、SFTP的源端作业参数相同,如表1所示。
表1 文件类源端作业参数

参数

是否必选

类型

说明

fromJobConfig.inputDirectory

String

抽取文件的路径。支持输入多个文件路径(最多50个),默认以“|”分隔,也可以自定义文件分隔符,例如:“FROM/example.csv|FROM/b.txt”

fromJobConfig.inputFormat

枚举

传输数据时所用的文件格式,目前支持以下文件格式:
  • CSV_FILE:CSV格式,用于迁移文件到数据表的场景。
  • JSON_FILE:JSON格式,一般都是用于迁移文件到数据表的场景。
  • BINARY_FILE:二进制格式,不解析文件内容直接传输,不要求文件格式必须为二进制。适用于文件到文件的原样复制。

当选择“BINARY_FILE”时,目的端也必须为文件系统。

fromJobConfig.lineSeparator

String

文件中的换行符,默认自动识别"\\n"、"\\r"或"\\r\\n"。手动配置特殊字符,如空格回车需使用URL编码后的值。或通过编辑作业json方式配置,无需URL编码。

fromJobConfig.columnList

String

需要抽取的列号,列号之间使用“&”分割,并由小到大排序,例如:“1&3&5”

fromJobConfig.fieldSeparator

String

字段分隔符,当文件格式为“CSV_FILE”时此参数有效,默认值为:“,”

fromJobConfig.quoteChar

Boolean

是否使用包围符,选择“true”时,包围符内的字段分隔符会被视为字符串值的一部分,目前CDM默认的包围符为:"。

fromJobConfig.regexSeparator

Boolean

是否使用正则表达式分割字段,当文件格式为“CSV_FILE”时此参数有效。

fromJobConfig.regex

String

正则表达式,当选择使用正则表达式分割字段时,此参数有效。

fromJobConfig.firstRowAsHeader

Boolean

是否默认首行为标题行,当文件格式为“CSV_FILE”时此参数有效。在迁移CSV文件到表时,CDM默认是全部写入,当该参数选择“true”时,CDM会将CSV文件的第一行数据作为标题行,不写入目的端的表。

fromJobConfig.fromCompression

枚举

压缩格式,当文件格式为“CSV_FILE”“JSON”时此参数有效。选择对应压缩格式的源文件:
  • NONE:表示传输所有格式的文件。
  • GZIP:表示只传输GZIP格式的文件。
  • ZIP:表示只传输ZIP格式的文件。

fromJobConfig.splitType

枚举

指定任务分片方式,选择按文件或文件大小进行分割。
  • FILE:按文件数量进行分片。例如有10个文件,并在任务参数中指定“throttlingConfig.numExtractors”(抽取并发数)为“5”,则每个分片2个文件。
  • SIZE:按文件大小分割。注意这里不会将文件做切分来实现均衡。例如:有10个文件,9个10M,1个200M,在并发任务数中指定“throttlingConfig.numExtractors”(抽取并发数)为“2”,则会分两个分片,一个处理9个10M的文件,一个处理1个200M的文件。

fromJobConfig.jsonReferenceNode

String

记录节点,当文件格式为“JSON_FILE”时此参数有效。对该JSON节点下的数据进行解析,如果该节点对应的数据为JSON数组,那么系统会以同一模式从该数组中提取数据。多层嵌套的JSON节点以字符“.”分割,例如:“data.list”

fromJobConfig.encodeType

String

编码类型,例如:“UTF_8”“GBK”

fromJobConfig.useMarkerFile

Boolean

选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“fromJobConfig.waitTime”(等待时间)参数中配置。

fromJobConfig.markerFile

String

启动作业的标识文件名。指定文件后,只有在源端路径下存在该文件的情况下才会运行任务,不指定时默认不启用该功能,例如:“ok.txt”

fromJobConfig.waitTime

String

选择开启作业标识文件的功能时,如果源路径下不存在启动作业的标识文件,作业挂机等待的时长,当超时后任务会失败。

等待时间设置为0时,当源端路径下不存在标识文件,任务会立即失败。

单位:秒。

fromJobConfig.filterType

枚举

选择过滤器类型:
  • WILDCARD:输入通配符作为过滤文件,满足过滤条件的路径或文件会被传输。
  • TIME:时间过滤器,当文件的修改时间晚于输入的时间时,该文件才会被传输。

fromJobConfig.pathFilter

String

路径过滤器,过滤类型为通配符时配置,用于过滤文件目录,例如:“*input”

fromJobConfig.fileFilter

String

文件过滤器,过滤类型为通配符时配置,用于过滤目录下的文件,支持配置多个文件,中间使用“,”分隔,例如:“*.csv,*.txt”

fromJobConfig.startTime

String

“过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间大于等于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”

该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss,-90,DAY))}表示:只迁移最近90天内的文件。

fromJobConfig.endTime

String

“过滤类型”选择“时间过滤器”时,可以指定一个时间值,当文件的修改时间小于该时间才会被传输,输入的时间格式需为“yyyy-MM-dd HH:mm:ss”

该参数支持配置为时间宏变量,例如${timestamp(dateformat(yyyy-MM-dd HH:mm:ss))}表示:只迁移修改时间为当前时间以前的文件。

fromJobConfig.fileSeparator

String

“fromJobConfig.inputDirectory”(抽取文件的路径)参数中如果输入的是多个文件路径,CDM使用这里配置的文件分隔符来区分各个文件,默认为“|”

fromJobConfig.md5FileSuffix

String

校验CDM抽取的文件,是否与源文件一致。