DataWorks数据集成支持HttpFile数据源,可以通过HTTP协议下载文件并同步文件至目标数据源。
使用限制
HttpFile数据源支持使用Serverless资源组(推荐)和独享数据集成资源组。
支持的字段类型
数据类型 | 说明 |
数据类型 | 说明 |
STRING | 文本类型。 |
LONG | 整数。 |
BYTES | 字节数组,将读取到的文本内容转为UTF-8编码的字节数组。 |
BOOL | 布尔型。 |
DOUBLE | 小数。 |
DATE | 日期时间类型,支持以下日期时间格式:
|
创建数据源
在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源,详细的配置参数解释可在配置界面查看对应参数的文案提示。
数据同步任务开发:HttpFile同步流程引导
数据同步任务的配置入口和通用配置流程可参见下文的配置指导。
单表离线同步任务配置指导
操作流程请参见通过向导模式配置离线同步任务、通过脚本模式配置离线同步任务。
脚本模式配置的全量参数和脚本Demo请参见下文的附录:HttpFile脚本Demo与参数说明。
附录:HttpFile脚本Demo与参数说明
离线任务脚本配置方式
如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下数据源的参数配置详情。
Reader脚本Demo
查询HttpFile的脚本样例如下:
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "httpfile",
"parameter": {
"datasource": "",
"fileName": "/f/z/1.csv",
"requestMethod": "GET",
"requestBody": "",
"requestHeaders": {
"header1": "v1",
"header2": "v2"
},
"socketTimeoutSeconds": 3600,
"connectTimeoutSeconds": 60,
"bufferByteSizeInKB": 1024,
"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 | 数据源名称。该名称必须与数据源管理界面创建的HttpFile数据源名称保持一致。 | 是 | 无 |
fileName | 文件路径,当文件路径包含特殊字符、中文时,需要输入URL转义后的值。 例如:特殊字符空格需转义为%20。 文件路径为: 本配置项输入:
| 是 | 无 |
bufferByteSizeInKB | 文件下载的缓冲大小,单位KB。 | 否 | 1024 |
requestMethod | 支持GET、POST和PUT。 | 否 | GET |
requestParam | 仅在requestMethod参数配置为GET时生效,当参数值包含特殊字符、中文时,参数值需要经过URL转义。例如: 参数start的值为 本配置项输入 参数start是指在发起GET请求时,用于指定某个操作起始时间的参数。 | 否 | 无 |
requestBody | 请求内容。仅在requestMethod参数配置为POST或PUT时生效,还需要配合requestHeaders中的Content-Type使用,例如:
| 否 | 无 |
requestHeaders | 请求头,以键值对的方式填写,例如:
| 否 |
|
fileFormat | 源头文件类型。支持CSV、TEXT,两种格式均支持自定义分隔符。 | 否 | 无 |
column | 读取字段列表:
默认情况下,您可以全部按照String类型读取数据,配置如下。
您可以指定column字段信息,配置如下。
对于您指定的column信息,type必须填写,index和value必须选择其一,三者不能同时填写。 | 是 | 全部按照STRING类型读取。 |
fieldDelimiter | 读取的字段分隔符。 HttpFile Reader在读取数据时,需要指定字段分割符,如果不指定默认为英文逗号(,),界面配置中也会默认填写为(,)。 如果分隔符不可见,请填写Unicode编码。例如,\u001b、\u007c。 | 是 | , |
lineDelimiter | 读取的行分隔符。 当fileFormat取值为TEXT时,本参数有效。 | 否 | 无 |
compress | 文本压缩类型,默认不填写(即不压缩)。支持压缩类型为gzip、bzip2和zip。 | 否 | 不压缩 |
encoding | 读取文件的编码配置。 | 否 | utf-8 |
nullFormat | 文本文件中无法使用标准字符串定义null(空指针),数据同步提供nullFormat定义哪些字符串可以表示为null。 例如:
| 否 | 无 |
skipHeader | 类CSV格式文件可能存在表头为标题情况,同步数据时可选择是否需要跳过表头(即不同步表头数据)。
压缩文件模式下不支持skipHeader参数。常见的文件压缩格式为gzip、bzip2和zip。 | 否 | false |
connectTimeoutSeconds (高级模式,向导模式不支持此参数的配置) | 建立HTTP连接的超时时间,单位秒,超过本配置项时,任务失败。 | 否 | 60 |
socketTimeoutSeconds (高级模式,向导模式不支持此参数的配置) | HTTP连接失去响应,单位秒,前后报文传输间隔大于此配置项时,任务失败。 | 否 | 3600 |
相关文档
数据源配置,详情请参见支持的数据源及同步方案。
数据源的权限管理,详情请参见RAM角色授权模式。
- 本页导读 (1)
- 使用限制
- 支持的字段类型
- 创建数据源
- 数据同步任务开发:HttpFile同步流程引导
- 单表离线同步任务配置指导
- 附录:HttpFile脚本Demo与参数说明
- 离线任务脚本配置方式
- Reader脚本Demo
- Reader脚本参数
- 相关文档