源端为HDFS
JSON样例
"from-config-values": { "configs": [ { "inputs": [ { "name": "fromJobConfig.inputDirectory", "value": "/hdfsfrom/from_hdfs_est.csv" }, { "name": "fromJobConfig.inputFormat", "value": "CSV_FILE" }, { "name": "fromJobConfig.columnList", "value": "1" }, { "name": "fromJobConfig.fieldSeparator", "value": "," }, { "name": "fromJobConfig.quoteChar", "value": "false" }, { "name": "fromJobConfig.regexSeparator", "value": "false" }, { "name": "fromJobConfig.firstRowAsHeader", "value": "false" }, { "name": "fromJobConfig.encodeType", "value": "UTF-8" }, { "name": "fromJobConfig.fromCompression", "value": "NONE" }, { "name": "fromJobConfig.compressedFileSuffix", "value": "*" }, { "name": "fromJobConfig.splitType", "value": "FILE" }, { "name": "fromJobConfig.useMarkerFile", "value": "false" }, { "name": "fromJobConfig.fileSeparator", "value": "|" }, { "name": "fromJobConfig.filterType", "value": "NONE" } ], "name": "fromJobConfig" } ] }
参数说明
- HDFS作业参数说明
参数
是否必选
类型
说明
fromJobConfig.inputDirectory
是
String
待抽取数据的路径,例如:“/data_dir”。
fromJobConfig.inputFormat
是
枚举
传输数据时所用的文件格式,目前支持以下文件格式:- CSV_FILE:CSV格式。
- PARQUET_FILE:PARQUET格式。
- BINARY_FILE:二进制格式。
当选择“BINARY_FILE”时,目的端也必须为文件系统。
fromJobConfig.columnList
否
String
需要抽取的列号,列号之间使用“&”分割,并由小到大排序,例如:“1&3&5”。
fromJobConfig.lineSeparator
否
String
文件中的换行符,默认自动识别"\\n"、"\\r"或"\\r\\n"。手动配置特殊字符,如空格回车需使用URL编码后的值。或通过编辑作业json方式配置,无需URL编码。
fromJobConfig.fieldSeparator
否
String
字段分隔符,当文件格式为“CSV_FILE”时此参数有效,默认值为:“,”。
fromJobConfig.quoteChar
否
Boolean
是否使用包围符,选择“true”时,包围符内的字段分隔符会被视为字符串值的一部分,目前CDM默认的包围符为:"。
fromJobConfig.regexSeparator
否
Boolean
是否使用正则表达式分割字段,当文件格式为“CSV_FILE”时此参数有效。
fromJobConfig.encodeType
否
String
编码类型,例如:“UTF_8”或“GBK”。
fromJobConfig.firstRowAsHeader
否
Boolean
是否默认首行为标题行,当文件格式为“CSV_FILE”时此参数有效。在迁移CSV文件到表时,CDM默认是全部写入,当该参数选择“true”时,CDM会将CSV文件的第一行数据作为标题行,不写入目的端的表。
fromJobConfig.fromCompression
否
枚举
压缩格式,表示选择只传输对应压缩格式的源文件。“NONE”表示传输所有格式的文件。
fromJobConfig.compressedFileSuffix
否
String
需要解压缩的文件后缀名。当一批文件中以该值为后缀时,才会执行解压缩操作,否则保持原样传输。当输入*或为空时,所有文件都会被解压。
fromJobConfig.splitType
否
枚举
指定任务分片方式,选择按文件或文件大小进行分割。HDFS上的文件,如果在HDFS上已经分片,则HDFS每个分片视为一个文件。- FILE:按文件数量进行分片。例如有10个文件,并在任务参数中指定“throttlingConfig.numExtractors”(抽取并发数)为“5”,则每个分片2个文件。
- SIZE:按文件大小分割。注意这里不会将文件做切分来实现均衡。例如:有10个文件,9个10M,1个200M,在并发任务数中指定“throttlingConfig.numExtractors”(抽取并发数)为“2”,则会分两个分片,一个处理9个10M的文件,一个处理1个200M的文件。
fromJobConfig.useMarkerFile
否
Boolean
选择是否开启作业标识文件的功能。当源端路径下存在启动作业的标识文件时才启动作业,否则会挂起等待一段时间,等待时长在下方“fromJobConfig.waitTime”(等待时间)参数中配置。
fromJobConfig.markerFile
否
String
启动作业的标识文件名。指定文件后,只有在源端路径下存在该文件的情况下才会运行任务,不指定时默认不启用该功能,例如:“ok.txt”。
fromJobConfig.fileSeparator
否
String
“fromJobConfig.inputDirectory”(抽取文件的路径)参数中如果输入的是多个文件路径,CDM使用这里配置的文件分隔符来区分各个文件,默认为“|”。
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.createSnapshot
否
Boolean
如果配置为“true”,CDM读取HDFS系统上的文件时,会先对待迁移的源目录创建快照(不允许对单个文件创建快照),然后CDM迁移快照中的数据。
需要HDFS系统的管理员权限才可以创建快照,CDM作业完成后,快照会被删除。
fromJobConfig.formats
否
数据结构
时间格式,当“fromJobConfig.inputFormat”(文件格式)为“CSV_FILE”(CSV格式),并且文件中有时间类型字段时,才需要输入,具体说明请参见fromJobConfig.formats参数说明。
fromJobConfig.decryption
否
枚举
“fromJobConfig.inputFormat”(文件格式)选择为“BINARY_FILE”(二进制格式)时才有该参数,选择是否对已加密的文件解密后再导出,以及解密方式:- NONE:不解密,直接导出文件。
- AES-256-GCM:使用AES-256-GCM(NoPadding)算法解密后再导出文件。
fromJobConfig.dek
否
String
数据解密密钥,密钥由长度64的十六进制数组成,且必须与加密时配置的“toJobConfig.dek”(导入时配置的数据加密密钥)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。
fromJobConfig.iv
否
String
解密需要的初始化向量,初始化向量由长度32的十六进制数组成,且必须与加密时配置的“toJobConfig.iv”(导入时配置的初始化向量)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。