华为云用户手册

  • 参数说明 参数 是否必选 类型 说明 fromJobConfig.streamName 是 String DIS的通道名。 fromJobConfig.disConsumerStrategy 是 枚举 设置从DIS拉取数据时的初始偏移量: LATEST:最大偏移量,即最新的数据。 FROM_LAST_STOP:从上次停止处继续拉取。 EARLIEST:最小偏移量,即最早的数据。 fromJobConfig.isPermanency 是 Boolean 是否永久运行。 fromJobConfig.maxPollRecords 否 String 每次向DIS请求数据限制最大请求记录数。 fromJobConfig.shardId 是 String DIS分区ID,该参数支持输入多个分区ID,使用“,”分隔。 fromJobConfig.dataFormat 是 枚举 解析数据时使用的格式: BINARY:适用于文件迁移场景,不解析数据内容原样传输。 CSV:以CSV格式解析源数据。 fromJobConfig.separator 否 String 字段分隔符。 fromJobConfig.appName 否 String 用户数据消费程序的唯一标识符。
  • 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.decryption 否 枚举 导出文件时,选择是否对已加密的文件解密后再导出,以及解密方式: NONE:不解密,直接导出文件。 AES-256-GCM:使用AES-256-GCM(NoPadding)算法解密后再导出文件。 fromJobConfig.dek 否 String 数据解密密钥,密钥由长度64的十六进制数组成,且必须与加密时配置的“toJobConfig.dek”(导入时配置的数据加密密钥)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 fromJobConfig.iv 否 String 解密需要的初始化向量,初始化向量由长度32的十六进制数组成,且必须与加密时配置的“toJobConfig.iv”(导入时配置的初始化向量)一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 fromJobConfig.md5FileSuffix 否 String 校验CDM抽取的文件,是否与源文件一致。
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.schemaName 是 String 数据库模式或表空间。 toJobConfig.tablePreparation 是 枚举 只有当源端和目的端都为关系数据库时,才有该参数。表示写入表数据时,用户选择的操作: DO_NOTHING:不自动建表。 CREATE_WHEN_NOT_EXIST:当目的端的数据库没有“tableName”参数中指定的表时,CDM会自动创建该表。 DROP_AND_CREATE:先删除“tableName”参数中指定的表,然后再重新创建该表。 toJobConfig.tableName 是 String 写入数据的表名。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.beforeImportType 否 枚举 导入数据前,选择是否清除目的表的数据: none:写入数据前不清除目标表中数据,数据追加写入。 shouldClearTable:写入数据前会清除目标表中数据。 whereClause:选择根据where条件删除时,需要配置“toJobConfig.whereClause”参数,CDM根据条件选择性删除目标表的数据。 toJobConfig.whereClause 否 String where条件,导入前根据where条件删除目的表的数据。 toJobConfig.orientation 否 枚举 存储方式,此参数只有当数据库类型为DWS时启用,当需要自动创建DWS数据库表,指定表的数据存储方式: ROW:表的数据以行式存储。 COLUMN:表的数据以列式存储。 toJobConfig.isCompress 否 Boolean 是否压缩,此参数只有当数据库类型为DWS时启用,当需要自动创建DWS数据库表,指定是否对表的数据进行压缩存储。 toJobConfig.useStageTable 否 Boolean 先导入阶段表,如果设置为“true”,数据导入目的表之前会把数据先导入阶段表,如果成功导入阶段表,则再从阶段表导入到目的表,这样避免导入过程失败,在目的表遗留部分成功数据。 toJobConfig.extendCharLength 否 Boolean 扩大字符字段长度,如果设置为“true”,当需要自动创建目的表时,目标表的字符类型字段长度设置为源表相应字段长度的3倍。 toJobConfig.useNullable 否 Boolean 当选择自动创建目的表时,如果选择使用非空约束,则目的表字段的是否非空约束,与原表具有相应非空约束的字段保持一致。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.schemaName", "value": "cdm" }, { "name": "toJobConfig.tablePreparation", "value": "DROP_AND_CREATE" }, { "name": "toJobConfig.tableName", "value": "rf_to" }, { "name": "toJobConfig.columnList", "value": "id&gid&name" }, { "name": "toJobConfig.isCompress", "value": "false" }, { "name": "toJobConfig.orientation", "value": "ROW" }, { "name": "toJobConfig.useStageTable", "value": "false" }, { "name": "toJobConfig.shouldClearTable", "value": "false" }, { "name": "toJobConfig.extendCharLength", "value": "false" } ], "name": "toJobConfig" } ] }
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.database", "value": "demo" }, { "name": "toJobConfig.collectionName", "value": "cdmbase" }, { "name": "toJobConfig.columnList", "value": "_char&_varchar" }, { "name": "toJobConfig.isBatchMigration", "value": "false" } ], "name": "toJobConfig" } ] }
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.hive", "value": "hive" }, { "name": "toJobConfig.database", "value": "rf_database" }, { "name": "toJobConfig.table", "value": "rf_to" }, { "name": "toJobConfig.tablePreparation", "value": "DO_NOTHING" }, { "name": "toJobConfig.columnList", "value": "aa&bb&cc&dd" }, { "name": "toJobConfig.shouldClearTable", "value": "true" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.hive 否 String 写入数据的数据源。 toJobConfig.database 否 String 写入数据的数据库名称,例如:“default”。 toJobConfig.table 是 String 写入数据的表名。 toJobConfig.tablePreparation 是 枚举 写入表数据时,用户选择的操作: DO_NOTHING:不自动建表。 CREATE_WHEN_NOT_EXIST:当目的端的数据库没有“tableName”参数中指定的表时,CDM会自动创建该表。 DROP_AND_CREATE:先删除“tableName”参数中指定的表,然后再重新创建该表。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.shouldClearTable 否 Boolean 导入前是否清空目标表的数据,如果设置为true,任务启动前会清除目标表中数据。
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.database 是 String MongoDB/DDS的数据库名称 toJobConfig.collectionName 是 String MongoDB/DDS的集合名称。 toJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.isBatchMigration 否 Boolean 是否为整库迁移。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.table", "value": "rf_to" }, { "name": "toJobConfig.storageType", "value": "PUTLIST" }, { "name": "toJobConfig.columns", "value": "AA:AA&BB:BB&CC:CC&DD:DD" }, { "name": "toJobConfig.rowKeyColumn", "value": "AA:AA" }, { "name": "toJobConfig.isOverride", "value": "false" }, { "name": "toJobConfig.isRowkeyRedundancy", "value": "false" }, { "name": "toJobConfig.algorithm", "value": "NONE" }, { "name": "toJobConfig.writeToWAL", "value": "true" }, { "name": "toJobConfig.transType", "value": "false" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.table 是 String 写入数据的表名,例如:“TBL_EXAMPLE”。 toJobConfig.storageType 是 枚举 将数据写入到HBase表中的方法: PUTLIST:put list方式写入。 toJobConfig.columns 否 String 需要抽取数据的列,列号之间使用“&”分割,列族与列之间用“:”分隔,例如:“cf1:c1&cf2:c2”。 toJobConfig.rowKeyColumn 是 String 作为rowkey的列,列号之间使用“&”分割,列族与列之间用“:”分隔,例如:“cf1:c1&cf2:c2”。 toJobConfig.isOverride 否 Boolean 使用BULKLOAD方式导入数据时,是否清空数据,例如:“true”。 toJobConfig.delimiter 否 String 当选取多个列做rowkey时,连接多列的分隔符,例如:“|”。 toJobConfig.isRowkeyRedundancy 否 Boolean 是否将选做Rowkey的数据同时写入HBase的列。 toJobConfig.algorithm 否 枚举 创建新HBase表时采用的压缩算法,支持SNAPPY和GZ算法,默认为“NONE”。 toJobConfig.writeToWAL 否 Boolean 选择是否开启HBase的预写日志机制(WAL,Write Ahead Log)。 是:开启后如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 否:关闭时能提升写入性能,但如果HBase服务器宕机可能会造成数据丢失。 toJobConfig.transType 否 Boolean true:源端数据库中的Short、Int、Long、Float、Double、Decimal类型列的数据,会转换为Byte[]数组(二进制)写入HBase,其他类型的按字符串写入。如果这几种类型中,有合并做rowkey的,就依然当字符串写入。 该功能作用是:降低存储占用空间,存储更高效;特定场景下rowkey分布更均匀。 false:源端数据库中所有类型的数据,都会按照字符串写入HBase。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.outputDirectory", "value": "/hdfsto" }, { "name": "toJobConfig.outputFormat", "value": "BINARY_FILE" }, { "name": "toJobConfig.writeToTempFile", "value": "false" }, { "name": "toJobConfig.duplicateFileOpType", "value": "REPLACE" }, { "name": "toJobConfig.compression", "value": "NONE" }, { "name": "toJobConfig.appendMode", "value": "true" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.outputDirectory 是 String 数据写入的路径,例如“/data_dir”。 toJobConfig.outputFormat 是 枚举 写入数据时所用的文件格式(二进制除外),支持以下文件格式: CSV_FILE:按照CSV格式写入数据。 BINARY_FILE:二进制格式,不解析文件内容直接传输,CDM会原样写入文件,不改变原始文件格式。 当选择“BINARY_FILE”时,源端也必须为文件系统。 toJobConfig.lineSeparator 否 String 行分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“\r\n”。 toJobConfig.fieldSeparator 否 String 列分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“,”。 toJobConfig.writeToTempFile 否 Boolean 将二进制文件先写入到临时文件(临时文件以“.tmp”作为后缀),迁移成功后,再进行rename或move操作,在目的端恢复文件。 toJobConfig.duplicateFileOpType 否 枚举 重复文件处理方式,只有文件名和文件大小都相同才会判定为重复文件。重复文件支持以下处理方式: REPLACE:替换重复文件。 SKIP:跳过重复文件。 ABANDON:发现重复文件停止任务。 toJobConfig.compression 否 枚举 写入文件后,选择对文件的压缩格式。支持以下压缩格式: NONE:不压缩。 DEFLATE:压缩为DEFLATE格式。 GZIP:压缩为GZIP格式。 BZIP2:压缩为BZIP2格式。 LZ4:压缩为LZ4格式。 SNAPPY:压缩为SNAPPY格式。 toJobConfig.appendMode 是 Boolean 当加载路径已经存在文件,是否需要写入,默认值为“false”。 toJobConfig.encryption 否 枚举 当“toJobConfig.outputFormat”(文件格式)为“BINARY_FILE”(二进制)时才有该参数,选择是否对导入的数据进行加密,以及加密方式: NONE:不加密,直接写入数据。 AES-256-GCM:使用长度为256byte的AES对称加密算法,目前加密算法只支持AES-256-GCM(NoPadding)。 toJobConfig.dek 否 String 数据加密密钥,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,密钥由长度64的十六进制数组成。 请您牢记这里配置的密钥,解密时的密钥与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 toJobConfig.iv 否 String 初始化向量,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,初始化向量由长度32的十六进制数组成。 请您牢记这里配置的初始化向量,解密时的初始化向量与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.bucketName", "value": "cdm" }, { "name": "toJobConfig.outputDirectory", "value": "/obsfrom/advance/" }, { "name": "toJobConfig.outputFormat", "value": "CSV_FILE" }, { "name": "toJobConfig.fieldSeparator", "value": "," }, { "name": "toJobConfig.writeToTempFile", "value": "false" }, { "name": "toJobConfig.validateMD5", "value": "false" }, { "name": "toJobConfig.recordMD5Result", "value": "false" }, { "name": "toJobConfig.encodeType", "value": "UTF-8" }, { "name": "toJobConfig.markerFile", "value": "finish.txt" }, { "name": "toJobConfig.duplicateFileOpType", "value": "REPLACE" }, { "name": "toJobConfig.columnList", "value": "1&2" }, { "name": "toJobConfig.quoteChar", "value": "false" }, { "name": "toJobConfig.encryption", "value": "NONE" }, { "name": "toJobConfig.copyContentType", "value": "false" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.bucketName 是 String OBS的桶名,例如“cdm”。 toJobConfig.outputDirectory 是 String 数据写入路径,例如“data_dir”。 toJobConfig.outputFormat 是 枚举 写入数据时所用的文件格式(二进制除外),支持以下文件格式: CSV_FILE:按照CSV格式写入数据。 BINARY_FILE:二进制格式,不解析文件内容直接传输,CDM会原样写入文件,不改变原始文件格式。 当选择“BINARY_FILE”时,源端也必须为文件系统。 toJobConfig.fieldSeparator 否 String 列分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“,”。 toJobConfig.lineSeparator 否 String 行分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“\r\n”。 toJobConfig.writeFileSize 否 String 源端为数据库时该参数有效,支持按大小分成多个文件存储,避免导出的文件过大,单位为MB。 toJobConfig.duplicateFileOpType 否 枚举 重复文件处理方式,只有文件名和文件大小都相同才会判定为重复文件。重复文件支持以下处理方式: REPLACE:替换重复文件。 SKIP:跳过重复文件。 ABANDON:发现重复文件停止任务。 toJobConfig.columnList 否 String 需要抽取的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.encryption 否 枚举 选择是否对上传的数据进行加密,以及加密方式: NONE:不加密,直接写入数据。 KMS:使用数据加密服务中的KMS进行加密。如果启用KMS加密则无法进行数据的MD5校验。 AES-256-GCM:使用长度为256bit的AES对称加密算法,目前加密算法只支持AES-256-GCM(NoPadding)。 toJobConfig.dek 否 String 数据加密密钥,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,密钥由长度64的十六进制数组成。 请您牢记这里配置的密钥,解密时的密钥与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 toJobConfig.iv 否 String 初始化向量,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,初始化向量由长度32的十六进制数组成。 请您牢记这里配置的初始化向量,解密时的初始化向量与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 toJobConfig.kmsID 否 String 上传时加密使用的密钥。需先在密钥管理服务中创建密钥。 toJobConfig.projectID 否 String KMS密钥所属的项目ID。 toJobConfig.writeToTempFile 否 Boolean 将二进制文件先写入到临时文件(临时文件以“.tmp”作为后缀),迁移成功后,再进行rename或move操作,在目的端恢复文件。 toJobConfig.validateMD5 否 Boolean 选择是否校验MD5值,不能与KMS加密同时使用。使用二进制格式传输文件时,才能校验MD5值。 计算源文件的MD5值,并与OBS返回的MD5值进行校验。如果源端已经存在MD5文件,则直接读取源端的MD5文件与OBS返回的MD5值进行校验。 toJobConfig.recordMD5Result 否 Boolean 当选择校验MD5值时,这里配置是否记录校验结果。 toJobConfig.recordMD5Link 否 String 可以指定任意一个OBS连接,将MD5校验结果写入该连接的桶。 toJobConfig.recordMD5Bucket 否 String 写入MD5校验结果的OBS桶。 toJobConfig.recordMD5Directory 否 String 写入MD5校验结果的目录。 toJobConfig.encodeType 否 String 编码类型,例如:“UTF_8”或“GBK”。 toJobConfig.markerFile 否 String 当作业执行成功时,会在写入目录下生成一个标识文件,文件名由用户指定,不指定时默认关闭该功能。 toJobConfig.copyContentType 否 Boolean “toJobConfig.outputFormat”(文件格式)为“BINARY_FILE”,且源端、目的端都为对象存储时,才有该参数。 选择“是”后,迁移对象文件时会复制源文件的Content-Type属性,主要用于静态网站的迁移场景。 归档存储的桶不支持设置Content-Type属性,所以如果开启了该参数,目的端选择写入的桶时,必须选择非归档存储的桶。 toJobConfig.quoteChar 否 Boolean “toJobConfig.outputFormat”(文件格式)为“CSV_FILE”,才有该参数,用于将数据库的表迁移到文件系统的场景。 选择“是”时,如果源端数据表中的某一个字段内容包含字段分隔符或换行符,写入目的端时CDM会使用双引号(")作为包围符将该字段内容括起来,作为一个整体存储,避免其中的字段分隔符误将一个字段分隔成两个,或者换行符误将字段换行。例如:数据库中某字段为hello,world,使用包围符后,导出到CSV文件的时候数据为"hello,world"。 toJobConfig.firstRowAsHeader 否 Boolean “toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时才有该参数。在迁移表到CSV文件时,CDM默认是不迁移表的标题行,如果该参数选择“是”,CDM在才会将表的标题行数据写入文件。
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.outputDirectory 是 String 数据写入的路径,例如:“/data_dir”。 toJobConfig.outputFormat 是 枚举 写入数据时所用的文件格式(二进制除外),支持以下文件格式: CSV_FILE:按照CSV格式写入数据。 BINARY_FILE:二进制格式,不解析文件内容直接传输,CDM会原样写入文件,不改变原始文件格式。 当选择“BINARY_FILE”时,源端也必须为文件系统。 toJobConfig.duplicateFileOpType 否 枚举 重复文件处理方式,只有文件名和文件大小都相同才会判定为重复文件。重复文件支持以下处理方式: REPLACE:替换重复文件。 SKIP:跳过重复文件。 ABANDON:发现重复文件停止任务。 toJobConfig.lineSeparator 否 String 行分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“\r\n”。 toJobConfig.fieldSeparator 否 String 列分割符号,当“toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时此参数有效,默认值为:“,”。 toJobConfig.encodeType 否 String 编码类型,例如:“UTF_8”或“GBK”。 toJobConfig.writeToTempFile 否 Boolean 将二进制文件先写入到临时文件(临时文件以“.tmp”作为后缀),迁移成功后,再进行rename或move操作,在目的端恢复文件。 toJobConfig.recordMD5Result 否 Boolean 文件格式为“二进制”时,该参数有效。对每个传输的文件都生成一个MD5值,并将该值记录在一个新文件中(新文件以“.md5”作为后缀),且可以指定MD5值生成的目录。 toJobConfig.recordMD5Directory 否 String 自定义MD5值写入的目录。 toJobConfig.markerFile 否 String 当作业执行成功时,会在写入目录下生成一个标识文件,文件名由用户指定,不指定时默认关闭该功能。 toJobConfig.firstRowAsHeader 否 Boolean “toJobConfig.outputFormat”(文件格式)为“CSV_FILE”时才有该参数。在迁移表到CSV文件时,CDM默认是不迁移表的标题行,如果该参数选择“是”,CDM在才会将表的标题行数据写入文件。 toJobConfig.encryption 否 枚举 选择是否对上传的数据进行加密,以及加密方式: NONE:不加密,直接写入数据。 AES-256-GCM:使用长度为256byte的AES对称加密算法,目前加密算法只支持AES-256-GCM(NoPadding)。 toJobConfig.dek 否 String 数据加密密钥,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,密钥由长度64的十六进制数组成。 请您牢记这里配置的密钥,解密时的密钥与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。 toJobConfig.iv 否 String 初始化向量,“toJobConfig.encryption”(加密方式)选择“AES-256-GCM”时有该参数,初始化向量由长度32的十六进制数组成。 请您牢记这里配置的初始化向量,解密时的初始化向量与这里配置的必须一致。如果不一致系统不会报异常,只是解密出来的数据会错误。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.outputDirectory", "value": "/opt/data" }, { "name": "toJobConfig.outputFormat", "value": "CSV_FILE" }, { "name": "toJobConfig.fieldSeparator", "value": "," }, { "name": "toJobConfig.duplicateFileOpType", "value": "REPLACE" } ], "name": "toJobConfig" } ] }
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.queue", "value": "cdm" }, { "name": "toJobConfig.database", "value": "sqoop" }, { "name": "toJobConfig.table", "value": "est1" }, { "name": "toJobConfig.columnList", "value": "string_&int_&date_&double_&boolean_&short_×tamp_&long_&smallint_&bigint_" }, { "name": "toJobConfig.shouldClearTable", "value": "false" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.queue 是 String 写入数据的资源队列。 toJobConfig.database 是 String 写入数据到数据湖探索(DLI)的哪个数据库。 toJobConfig.table 是 String 写入数据的表名。 toJobConfig.columnList 否 String 需要加载的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.shouldClearTable 否 Boolean 导入前是否清空资源队列的数据。
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.streamName", "value": "cdm" }, { "name": "toJobConfig.separator", "value": "," }, { "name": "toJobConfig.identifierEnclose", "value": "'" } ], "name": "toJobConfig" } ] }
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.index", "value": "cdm" }, { "name": "toJobConfig.type", "value": "type1" }, { "name": "toJobConfig.shouldClearType", "value": "false" }, { "name": "toJobConfig.pipeLine", "value": "es_03" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 toJobConfig.index 是 String 写入数据的索引,类似关系数据库中的数据库名称。 toJobConfig.type 是 String 写入数据的类型,类似关系数据库中的表名。 toJobConfig.shouldClearType 否 Boolean 导入前是否清除数据。 toJobConfig.primaryKey 否 String 主键或唯一索引。 toJobConfig.columnList 否 String 需要写入的字段列表,字段名之间使用“&”分隔,例如:“id&gid&name”。 toJobConfig.pipeLine 否 String 需要先在kibana中创建管道ID,这里才可以选择,该参数用于数据传到云搜索服务/Elasticsearch后,通过Elasticsearch的数据转换pipeline进行数据格式变换。 toJobConfig.createIndexStrategy 否 枚举 对于持续写入数据到Elasticsearch的流式作业,CDM支持在Elasticsearch中定时创建新索引并写入数据,方便用户后期删除过期的数据。支持按以下周期创建新索引: EveryHour:每小时整点创建新索引,新索引的命名格式为“索引名+年+月+日+小时”,例如“index2018121709”。 EveryDay:每天零点零分创建新索引,新索引的命名格式为“索引名+年+月+日”,例如“index20181217”。 EveryWeek:每周周一的零点零分创建新索引,新索引的命名格式为“索引名+年+周”,例如“index201842”。 EveryMonth:每月一号零点零分创建新索引,新索引的命名格式为“索引名+年+月”,例如“index201812”。 从文件类抽取数据时,必须配置单个抽取(“抽取并发数”参数配置为1),否则该参数无效。
  • 参数说明 参数说明 参数 是否必选 类型 说明 toJobConfig.isBatchMigration 否 Boolean 是否为整库迁移。 toJobConfig.shouldClearDatabase 否 Boolean 导入前是否清空数据。 toJobConfig.keyPrefix 是 String key前缀,类似关系数据库的表名。 Redis和关系表的映射:用关系表的“表名+分隔符”来对应Redis的Key;关系表的一行数据对应Redis的Value。 toJobConfig.keySeparator 是 String key分隔符,一般用来分隔关系表和主键。 toJobConfig.primaryKeyList 是 String 主键列表,字段名之间使用“&”分割,例如:“id&gid”。 toJobConfig.valueStoreType 是 枚举 关系表行数据在Redis中的存储方式分为“string”和“hash”两种存储方式。 STRING:表示一行数据通过字符串方式存储,每列之间通过“值分隔符”分隔。 HASH:表示一行数据通过“列名:列值”的方式存储在hash表中。 toJobConfig.valueSeparator 否 String 值分隔符号,当“valueStoreType”为“string”时此参数有效,默认值为:“\tab”。 toJobConfig.columnList 否 String 需要写入的字段列表,字段名之间使用“&”分割,例如:“id&gid&name”。 toJobConfig.formats 否 数据结构 时间格式,请参见toJobConfig.formats参数说明。 toJobConfig.formats参数说明 参数 是否必选 类型 说明 name 是 String 列号,例如:“1”。 value 是 String 时间格式,例如:“yyyy-MM-dd”。
  • 调用API获取项目ID 项目ID可以通过调用查询指定条件下的项目信息API获取。 获取项目ID的接口为“GET https://{Endpoint}/v3/projects”,其中{Endpoint}为IAM的终端节点。 终端节点(Endpoint)即调用API的请求地址,不同服务不同区域的终端节点不同。本服务的Endpoint您可以从终端节点Endpoint获取。 接口的认证鉴权请参见认证鉴权。 响应示例如下,其中projects下的“id”即为项目ID。当返回多个id,请依据实际的区域(name)获取。 { "projects": [ { "domain_id": "65382450e8f64ac0870cd180d14e684b", "is_domain": false, "parent_id": "65382450e8f64ac0870cd180d14e684b", "name": "region-name", "description": "", "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects/a4a5d4098fb4474fa22cd05f897d6b99" }, "id": "a4a5d4098fb4474fa22cd05f897d6b99", "enabled": true } ], "links": { "next": null, "previous": null, "self": "https://www.example.com/v3/projects" }}
  • JSON样例 "to-config-values": { "configs": [ { "inputs": [ { "name": "toJobConfig.isBatchMigration", "value": "false" }, { "name": "toJobConfig.shouldClearDatabase", "value": "false" }, { "name": "toJobConfig.keyPrefix", "value": "cdm_string" }, { "name": "toJobConfig.keySeparator", "value": ":" }, { "name": "toJobConfig.primaryKeyList", "value": "1" }, { "name": "toJobConfig.valueStoreType", "value": "STRING" }, { "name": "toJobConfig.valueSeparator", "value": "," }, { "name": "toJobConfig.columnList", "value": "1&2&3&4&5&6&7&8&9&10&11&12" } ], "name": "toJobConfig" } ] }
  • 参数说明 参数 是否必选 类型 说明 throttlingConfig.numExtractors 否 Integer 最大抽取任务并发数,例如:“20”。 groupJobConfig.groupName 否 枚举 选择作业所属的分组,默认分组为“DEFAULT”。 throttlingConfig.numLoaders 否 Integer 仅当HBase或Hive作为目的数据源时该参数才有效。 最大加载任务数,例如:“5”。 throttlingConfig.recordDirtyData 否 Boolean 是否写入脏数据,例如:“true”。 throttlingConfig.writeToLink 否 String 脏数据要写入的连接,目前只支持写入到OBS连接或HDFS连接。例如:“obslink”。 throttlingConfig.obsBucket 否 String 写入脏数据的OBS桶的名称,只有当脏数据要写入OBS连接的时候,此参数才生效。例如:“dirtyData”。 throttlingConfig.dirtyDataDirectory 否 String 写入脏数据的目录: 如果选择写入到HDFS,此参数即为HDFS目录。 如果选择写入到OBS,此参数表示相应的OBS桶下的目录,例如:“/data/dirtydata/”。 throttlingConfig.maxErrorRecords 否 String 单个分片的最大错误记录数。单个map的错误记录超过设置的最大错误记录数时,任务自动结束,已经导入的数据不回退。 schedulerConfig.isSchedulerJob 否 Boolean 是否开启定时任务,例如:“true”。 schedulerConfig.cycleType 否 String 定时任务的周期类型,目前支持五种周期类型: minute:分钟 hour:小时 day:天 week:周 month:月 schedulerConfig.cycle 否 Integer 定时任务的周期,如果周期类型选择了“minute”,“cycle”输入“10”,就表示该定时任务每10分钟执行一次。 schedulerConfig.runAt 否 String 定时任务在周期内的触发时间,当周期为“hour”、“week”或“month”时,该参数有效。 如果周期类型为“month”,设定周期为“1”,“runAt”输入“15”,就表示每个月的15号执行该定时任务。并且该参数支持输入多个,以英文的逗号“,”分隔开。 例如上述场景中“runAt”输入“1,2,3,4,5”,就表示每个月的1日、2日、3日、4日和5日执行该定时任务。 周期类型为“week”时,“runAt”输入“mon,tue,wed,thu,fri”,就表示周一到周五执行该定时任务。 周期类型为“hour”时,“runAt”输入“27,57”,表示周期内的的27分和57分执行该定时任务。 schedulerConfig.startDate 否 String 定时任务的开始时间,例如:“2018-01-24 19:56:19”。 schedulerConfig.stopDate 否 String 定时任务的结束日期,例如:“2018-01-27 23:59:00”。 如果不输入结束时间,则表示定时任务将一直执行,永远不会结束。 schedulerConfig.disposableType 否 枚举 作业运行完是否删除: NONE:作业执行完不删除。 DELETE_AFTER_SUCCEED:仅作业执行成功时删除该作业,适合海量一次性作业。 DELETE:作业执行完删除该作业,执行成功或失败都会删除。 retryJobConfig.retryJobType 否 枚举 如果作业执行失败,选择是否自动重试: NONE:不重试。 RETRY_TRIPLE:重试三次。
  • JSON样例 "driver-config-values": { "configs": [ { "inputs": [ { "name": "throttlingConfig.numExtractors", "value": "1" }, { "name": "throttlingConfig.numLoaders", "value": "1" }, { "name": "throttlingConfig.recordDirtyData", "value": "false" } ], "name": "throttlingConfig" }, { "inputs": [], "name": "jarConfig" }, { "inputs": [ { "name": "schedulerConfig.isSchedulerJob", "value": "false" }, { "name": "schedulerConfig.disposableType", "value": "NONE" } ], "name": "schedulerConfig" }, { "inputs": [], "name": "transformConfig" }, { "inputs": [ { "name": "retryJobConfig.retryJobType", "value": "NONE" } ], "name": "retryJobConfig" } ] }
  • 获取DataArts Studio实例ID和工作空间ID DataArts Studio的实例ID和工作空间ID可以从DataArts Studio控制台的URI链接中获取。 在DataArts Studio控制台首页,选择对应工作空间,并点击任一模块,如“管理中心”。 图1 选择管理中心 进入管理中心页面后,从浏览器地址栏中获取“instanceId”和“workspace”对应的值,即为DataArts Studio的实例ID和工作空间ID。 如图2所示,实例ID为6b88…2688,工作空间ID为1dd3bc…d93f0。 图2 获取实例ID和工作空间ID
  • 公共请求消息头 公共请求消息头如表1所示。 表1 公共请求消息头 名称 描述 是否必选 示例 Content-Type 消息体的类型(格式),默认取值为“application/json”。 如果请求消息体中含有中文字符,则还需要通过charset=utf8指定中文字符集。 是 application/json;charset=utf8 Content-Length 请求body长度,单位为Byte。 否 3495 X-Language 请求语言 否 en_us X-Project-Id project id,项目编号。请参考项目ID和帐号ID章节获取项目编号。 否 e9993fc787d94b6c886cbaa340f9c0f4 X-Auth-Token 用户Token。 用户Token也就是调用获取用户Token接口的响应值,因此调用该接口时,不用填写本字段。 请求响应成功后在响应消息头中包含的“X-Subject-Token”的值即为Token值。 使用Token认证时该字段必选。 注:以下仅为Token示例片段 MIIPAgYJKoZIhvcNAQcCo...ggg1BBIINPXsidG9rZ X-Sdk-Date 请求的发生时间,格式为(YYYYMMDD'T'HHMMSS'Z')。 取值为当前系统的GMT时间。 使用AK/SK认证时必选。 20150907T101459Z Host 请求的服务器信息,从服务API的URL中获取。值为hostname[:port]。端口缺省时使用默认的端口,https的默认端口为443。 使用AK/SK认证时必选。 code.test.com or code.test.com:443 Authorization 签名认证信息。 该值来源于请求签名结果。 使用AK/SK认证时必选。 - workspace 工作空间id,获取方式请参见DataArts Studio实例ID和工作空间ID。 调用批量数据迁移或实时数据接入API时,仅支持default工作空间,无需配置。 调用数据开发API时,默认查询default工作空间数据。如需查询其他工作空间需要带上该消息头。 调用其他组件API时必选,否则会调用失败。 d1cd7861478748a6925bc02f47c69279 X-Dlm-Type 数据服务版本类型,用于请求数据服务时,指定共享版/专享版 调用数据服务接口时必选 共享版: SHARED 专享版: EXCLUSIVE
  • 数据资产guid 每个业务资产、技术资产或指标资产都具备guid,guid是资产的唯一标识符。在调用数据目录接口时,部分URL中需要填入guid。 数据资产的guid获取步骤如下: 在DataArts Studio控制台首页,选择实例,点击“进入控制台”,选择对应工作空间的“数据目录”模块,进入数据目录页面。 图1 选择数据目录 按下F12,打开开发者调试工具,然后选择Network功能。 图2 选择Network 在数据目录的“总览”界面或“数据目录”界面,选择需要查询guid的资产,并点击资产名进入资产详情页。 在Network请求中,寻找Name形如“09318f28-939f-4ab6-a374-9e621096652c”的长字符串。 图3 寻找长字符串 点击该字符串,弹出具体请求的弹窗。在Request URL中,可以确认该字符串即为该资产的guid。 图4 获取guid 父主题: 使用前必读
共100000条