COS数据源可提供读取文件的能力,通过使用本数据源,可以获取COS中存储的文件,解析并同步至任意目标数据源。本文为您介绍DataWorks的COS数据同步的能力支持情况。
数据类型
COS 数据源,支持以下的数据类型。
数据类型 | 说明 |
STRING | 文本类型。 |
LONG | 整型。 |
BYTES | 字节数组,将读取到的文本内容转为UTF-8编码的字节数组。 |
BOOL | 布尔型。 |
DOUBLE | 浮点型。 |
DATE | 日期时间类型,支持以下日期时间格式:YYYY-MM-dd HH:mm:ss、yyyy-MM-ddHH:mm:ss |
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见数据源管理,详细的配置参数解释可在配置界面查看对应参数的文案提示。
关键参数如下:
参数 | 说明 |
数据源名称 | 可自定义数据源名称。数据源名称在工作空间内唯一;必须以字母、数字、下划线组合,且不能以数字和下划线开头。 |
地域 | Bucket所属的Region,填写地域简称,可参考:地域和访问域名。 |
Bucket | COS的Bucket名称。 |
Endpoint | COS的访问域名, 可参考:地域和访问域名。 |
AccessKey ID | 对应腾讯云平台的SecretId,前往管理控制台中的 API 密钥管理 页面获取。 |
AccessKey Secret | 对应腾讯云平台的SecretKey,前往管理控制台中的 API 密钥管理 页面获取。 |
数据同步任务开发
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
单表离线同步任务配置指导
操作流程请参见向导模式配置、脚本模式配置。脚本模式配置的全量参数和脚本Demo,请参见下文附录:脚本Demo与参数说明。
附录:脚本Demo与参数说明
离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见脚本模式配置,以下为您介绍脚本模式下数据源的参数配置详情。
Reader脚本Demo
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "cos",
"parameter": {
"datasource": "",
"object": ["f/z/1.csv"],
"fileFormat": "csv",
"encoding": "utf8/gbk/...",
"fieldDelimiter": ",",
"useMultiCharDelimiter": true,
"lineDelimiter": "\n",
"skipHeader": true,
"compress": "zip/gzip",
"column": [
{
"index": 0,
"type": "long"
},
{
"index": 1,
"type": "boolean"
},
{
"index": 2,
"type": "double"
},
{
"index": 3,
"type": "string"
},
{
"index": 4,
"type": "date"
}
]
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": "0"
},
"speed": {
"concurrent": 1
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Reader脚本参数
参数 | 描述 | 是否必选 | 默认值 |
datasource | 数据源名称,脚本模式支持添加数据源,该配置项填写的内容必须和添加的数据源名称保持一致。 | 是 | 无 |
fileFormat | 源头文件类型。支持csv、text、parquet、orc。 | 是 | 无 |
object | 文件路径,此参数支持*通配符,支持配置为数组。 例如:您需要同步a/b/1.csv和a/b/2.csv两个文件,可以配置为a/b/*.csv。 | 是 | 无 |
column | 读取字段列表,type指定源数据的类型,index指定当前列来自于文本第几列(以0开始),value指定当前类型为常量,不是从源头文件读取数据,而是根据value值自动生成对应的列。 默认情况下,您可以全部按照String类型读取数据,配置如下。
也可以指定column字段信息,配置如下。
说明 所指定的column信息,type必须填写,index和value必须选择其一。 | 是 | 全部按照STRING类型读取。 |
fieldDelimiter | 读取的字段分隔符。COS Reader在读取数据时,需要指定字段分隔符,如果不指定,默认为英文逗号',',界面配置中也会默认回填英文逗号。如果分隔符不可见,请填写Unicode编码。例如: | 是 | , |
lineDelimiter | 读取的行分隔符。当fileFormat取值为text时,本参数有效。 | 否 | 无 |
compress | 文本压缩类型,默认不填写(即不压缩)。支持压缩类型为gzip、bzip2和zip。 | 否 | 不压缩 |
encoding | 读取文件的编码配置。 | 否 | utf-8 |
nullFormat | 文本文件中无法使用标准字符串定义null(空指针),数据同步系统提供nullFormat定义哪些字符串可以表示为null。例如:
| 否 | 无 |
skipHeader | CSV格式文件通过skipHeader配置是否读取表头内容。
说明 压缩文件模式下不支持skipHeader。 | 否 | false |
parquetSchema | 以Parquet文件格式读取COS文件时需配置,当且仅当fileFormat为parquet时生效,是用于描述数据结构的定义。通用格式如下:
parquetSchema的配置格式说明:
配置示例如下所示。
| 否 | 无 |
csvReaderConfig | 读取CSV类型文件参数配置为Map类型。读取CSV类型文件使用的CsvReader进行读取,不配置则使用默认值。 | 否 | 无 |