更新时间:2024-03-25 GMT+08:00

目的端为OBS

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校验。

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.filePrefix

String

自定义文件名前缀,支持任意自定义名称,也支持表名宏时间宏版本宏。例如:${tableName}_${dateformat(yyyy-MM-dd HH:mm:ss, -1, DAY)}_${version}。

注意文件名格式要符合obs文件路径命名规范。