华为云用户手册

  • 参数说明 参数 是否必选 类型 说明 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 当选择自动创建目的表时,如果选择使用非空约束,则目的表字段的是否非空约束,与原表具有相应非空约束的字段保持一致。
  • 参数说明 参数 是否必选 类型 说明 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.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,任务启动前会清除目标表中数据。
  • 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),否则该参数无效。
  • 调用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" }}
  • 参数说明 参数说明 参数 是否必选 类型 说明 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”。
  • 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 父主题: 使用前必读
  • 状态码 状态代码由三位数字组成,第一个数字定义了响应的类别,有五种可能取值: 1xx:指示信息,表示请求已接收,继续处理。 2xx:成功,表示请求已被成功接收、理解、接受。 3xx:重定向,要完成请求必须进行更进一步的操作。 4xx:客户端错误,请求有语法错误或请求无法实现。 5xx:服务器端错误,服务器未能实现合法的请求。 状态码如表1所示。 表1 状态码 状态码 编码 状态说明 100 Continue 继续请求。 这个临时响应用来通知客户端,它的部分请求已经被服务器接收,且仍未被拒绝。 101 Switching Protocols 切换协议。只能切换到更高级的协议。 例如,切换到HTTP的新版本协议。 200 OK 接口调用成功。 201 Created 创建类的请求完全成功。 202 Accepted 已经接受请求,但未处理完成。 203 Non-Authoritative Information 非授权信息,请求成功。 204 NoContent 请求完全成功,同时HTTP响应不包含响应体。 在响应OPTIONS方法的HTTPS请求时返回此状态码。 205 Reset Content 重置内容,服务器处理成功。 206 Partial Content 服务器成功处理了部分GET请求。 300 Multiple Choices 多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择。 301 Moved Permanently 永久移动,请求的资源已被永久的移动到新的URI,返回信息会包括新的URI。 302 Found 资源被临时移动。 303 See Other 查看其它地址。使用GET和POST请求查看。 304 Not Modified 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。 305 Use Proxy 所请求的资源必须通过代理访问。 306 Unused 已经被废弃的HTTP状态码。 400 BadRequest 非法请求。 建议直接修改该请求,不要重试该请求。 401 Unauthorized 在客户端提供认证信息后,返回该状态码,表明服务端指出客户端所提供的认证信息不正确或非法。 402 Payment Required 保留请求。 403 Forbidden 请求被拒绝访问。 返回该状态码,表明请求能够到达服务端,且服务端能够理解用户请求,但是拒绝做更多的事情,因为该请求被设置为拒绝访问,建议直接修改该请求,不要重试该请求。 404 NotFound 所请求的资源不存在。 建议直接修改该请求,不要重试该请求。 405 MethodNotAllowed 请求中带有该资源不支持的方法。 建议直接修改该请求,不要重试该请求。 406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。 407 Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权。 408 Request Time-out 服务器等候请求时发生超时。 客户端可以随时再次提交该请求而无需进行任何更改。 409 Conflict 服务器在完成请求时发生冲突。 返回该状态码,表明客户端尝试创建的资源已经存在,或者由于冲突请求的更新操作不能被完成。 410 Gone 客户端请求的资源已经不存在。返回该状态码,表明请求的资源已被永久删除。 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息。 412 Precondition Failed 未满足前提条件,服务器未满足请求者在请求中设置的其中一个前提条件。 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。 414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务器无法处理。 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式。 416 Requested range not satisfiable 客户端请求的范围无效。 417 Expectation Failed 服务器无法满足Expect的请求头信息。 422 UnprocessableEntity 请求格式正确,但是由于含有语义错误,无法响应。 429 TooManyRequests 表明请求超出了客户端访问频率的限制或者服务端接收到多于它能处理的请求。建议客户端读取相应的Retry-After首部,然后等待该首部指出的时间后再重试。 500 InternalServerError 表明服务端能被请求访问到,但是不能理解用户的请求。 501 Not Implemented 服务器不支持请求的功能,无法完成请求。 502 Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。 503 ServiceUnavailable 被请求的服务无效。 建议直接修改该请求,不要重试该请求。 504 ServerTimeout 请求在给定的时间内无法完成。客户端仅在为请求指定超时(Timeout)参数时会得到该响应。 505 HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。 父主题: 附录
  • 数据开发API错误码 错误响应消息格式如下: { "error_code":"DLF.0100", "error_msg":"The job not found" } 错误码如表1所示。 表1 错误码 状态码 错误码 错误信息 描述 处理措施 400 DLF.0100 作业不存在。 作业不存在。 请检查作业是否存在。 400 DLF.0101 作业配额已达上限。 作业配额已达上限。 请申请作业配额。 400 DLF.0102 作业名称已经被其他作业占用。 作业名称已经被其他作业占用。 请检查作业是否被占用。 400 DLF.0136 只有批作业才支持这个接口调用。 只有批作业才支持这个接口调用。 请检查接口调用作业。 400 DLF.0137 作业实例不存在。 作业实例不存在。 请检查作业实例是否存在。 400 DLF.0201 创建脚本失败。 创建脚本失败。 请检查脚本。 400 DLF.0202 脚本名称已经被其他脚本占用。 脚本名称已经被其他脚本占用。 请检查脚本名称是否被占用。 400 DLF.0203 修改脚本失败。 修改脚本失败。 请检查脚本。 400 DLF.0802 指定的参数没有配置。 指定的参数没有配置。 请检查参数。 400 DLF.0803 OBS路径不合法。 OBS路径不合法。 请检查OBS路径。 400 DLF.0810 查询的系统任务不存在。 查询的系统任务不存在。 请检查系统任务。 400 DLF.0815 读取OBS文件失败。 读取OBS文件失败。 请检查OBS文件。 400 DLF.1006 作业的节点为空。 作业的节点为空。 请检查节点。 400 DLF.1242 OBS桶不存在。 OBS桶不存在。 请检查OBS桶。 400 DLF.3004 作业名称不能为空。 作业名称不能为空。 请检查作业名称。 400 DLF.3018 作业名称不合法。 作业名称不合法。 请检查作业名称。 400 DLF.3025 作业的调度参数不合法。 作业的调度参数不合法。 请检查调度参数。 400 DLF.3050 作业的描述不合法。 作业的描述不合法。 请检查作业的描述。 400 DLF.6201 脚本不存在。 脚本不存在。 请检查脚本。 400 DLF.6205 脚本的执行实例不存在。 脚本的执行实例不存在。 请检查脚本的执行实例。 400 DLF.6241 查询的资源不存在。 查询的资源不存在。 请检查资源是否存在。 400 DLF.6247 脚本类型没有指定。 脚本类型没有指定。 请检查脚本类型。 400 DLF.6253 脚本配额已达上限。 脚本配额已达上限。 请申请脚本配额。 400 DLF.6258 目录下有数据无法删除。 目录下有数据无法删除。 请先删除目录下数据。 400 DLF.6259 目录下已经存在同名的资源。 目录下已经存在同名的资源。 请检查目录下是否存在同名的资源。 400 DLF.6263 资源类型不合法。 资源类型不合法。 请检查资源类型。 400 DLF.6264 资源文件所在的OBS路径不合法。 资源文件所在的OBS路径不合法。 请检查OBS路径。 400 DLF.6265 资源描述不合法。 资源描述不合法。 请检查资源描述。 400 DLF.6271 每个用户只能创建一个DLI连接。 每个用户只能创建一个DLI连接。 请检查DLI连接。 400 DLF.6309 连接名称已经在其他连接占用。 连接名称已经在其他连接占用。 请检查连接名称是否被其他连接占用。 400 DLF.6322 数据连接不存在。 数据连接不存在。 请检查数据连接。 400 DLF.6323 连接类型不允许修改。 连接类型不允许修改。 请检查连接类型。 400 DLF.6416 集群已经被其他连接占用了。 集群已经被其他连接占用了。 请检查集群。 400 DLF.6418 配置DWS集群名或者集群的访问地址、端口,两者二选一,不能都为空。 配置DWS集群名或者集群的访问地址、端口,两者二选一,不能都为空。 请检查集群DWS集群名或者集群的访问地址、端口。 400 DLF.6423 创建Agent作业异常。 创建Agent作业异常。 请稍后重试,或者检查Agent状态是否正常。 400 DLF.6888 帐户权限不合法。 帐户权限不合法。 请检查帐户权限。 父主题: 错误码
  • 响应 响应样例 { "total": 1, "records": [ { "id": "fd0beac79418d65e3b3ed24a6e53b24b", "name": "testApi", "create_time": 1579162215000, "status": "API_STATUS_CREATED", "manager": "admin", "type": "API_SPECIFIC_TYPE_REGISTER", "debug_status": "API_DEBUG_WAITING", "description": "api description" } ]} 响应参数说明 参数名 参数类型 说明 total Integer API总数 records Array of ApiOverview objects API结果集 表1 ApiOverview 参数 参数类型 描述 id String API ID name String API名称 group_id String API分组ID description String API描述 status String API状态 枚举值: API_STATUS_CREATED API_STATUS_PUBLISH_WAIT_REVIEW API_STATUS_PUBLISH_REJECT API_STATUS_PUBLISHED API_STATUS_WAITING_STOP API_STATUS_STOPPED API_STATUS_RECOVER_WAIT_REVIEW API_STATUS_WAITING_OFFLINE API_STATUS_OFFLINE API_STATUS_OFFLINE_WAIT_REVIEW debug_status String API调试状态 枚举值: API_DEBUG_WAITING API_DEBUG_FAILED API_DEBUG_SUCCESS type String API 类型 枚举值: API_SPECIFIC_TYPE_CONFIGURATION API_SPECIFIC_TYPE_SCRIPT API_SPECIFIC_TYPE_REGISTER manager String API审核人 create_user String API创建者 create_time Long API 创建时间
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String IAM Token Workspace 否 String 工作空间id Dlm-Type 是 String dlm版本类型 枚举值: SHARED EXCLUSIVE Content-Type 是 String 资源类型 缺省值:application/json 表3 请求Body参数 参数 是否必选 参数类型 描述 body 否 String 请求体 paras 否 ApiTestParas object 请求参数的json 表4 ApiTestParas 参数 是否必选 参数类型 描述 page_size 否 String 分页查询每页最大数据条数 page_num 否 String 分页查询页数
共100000条