HttpFile数据源

DataWorks数据集成支持HttpFile数据源,可以通过HTTP协议下载文件并同步文件至目标数据源。

使用限制

HttpFile数据源支持使用Serverless资源组(推荐)独享数据集成资源组

支持的字段类型

数据类型

说明

STRING

文本类型。

LONG

整数。

BYTES

字节数组,将读取到的文本内容转为UTF-8编码的字节数组。

BOOL

布尔型。

DOUBLE

小数。

DATE

日期时间类型,支持以下日期时间格式:

  • yyyy-MM-dd HH:mm:ss

  • yyyy-MM-dd

  • HH:mm:ss

创建数据源

在进行数据同步任务开发时,您需要在DataWorks上创建一个对应的数据源,操作流程请参见创建并管理数据源详细的配置参数解释可在配置界面查看对应参数的文案提示

数据同步任务开发:HttpFile同步流程引导

数据同步任务的配置入口和通用配置流程可参见下文的配置指导。

单表离线同步任务配置指导

附录:HttpFile脚本Demo与参数说明

离线任务脚本配置方式

如果您配置离线任务时使用脚本模式的方式进行配置,您需要按照统一的脚本格式要求,在任务脚本中编写相应的参数,详情请参见通过脚本模式配置离线同步任务,以下为您介绍脚本模式下数据源的参数配置详情。

Reader脚本Demo

查询HttpFile File的脚本样例如下:

{
  "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。

文件路径为:/file/test abc.csv

本配置项输入:/file/test%20abc.csv

说明
  • 文件路径可包含多种特殊字符(例如,空格、#、%),不同特殊字符的转义方式存在差异。支持的特殊字符具体请以实际界面功能为准;各特殊字符的转义方式,请参见HTML统一资源定位符

  • 最终的访问路径由“数据源的URL域名”与“文件路径”拼接而成。

bufferByteSizeInKB

文件下载的缓冲大小,单位KB。

1024

requestMethod

支持GET、POST和PUT。

GET

requestParam

仅在requestMethod参数配置为GET时生效,当参数值包含特殊字符、中文时,参数值需要经过URL转义。例如:

参数start的值为2024-03-25 17:06:54

本配置项输入start=2024-03-25%2017:06:54

说明

参数start是指在发起GET请求时,用于指定某个操作起始时间的参数。

requestBody

请求内容。仅在requestMethod参数配置为POST或PUT时生效,还需要配合requestHeaders中的Content-Type使用,例如:

{
 "requestBody":"{\"a\":\"b\"}",
 "requestHeaders": {
 "Content-Type": "application/json"
 }
}

requestHeaders

请求头,以键值对的方式填写,例如:

{
 "Content-Type": "application/json"
}

{
 "User-Agent": "DataX Http File Reader"
}

fileFormat

源头文件类型。支持CSV、TEXT,两种格式均支持自定义分隔符。

column

读取字段列表:

  • type指定源数据的类型。

  • index指定当前列来自于文本第几列(以0开始)。

  • value指定若当前列的字段类型为常量,那么Reader在处理数据时,不是从源头文件读取数据来填充该列,而是依据您所指定的固定value值自动生成该列的所有数据。

默认情况下,您可以全部按照String类型读取数据,配置如下。

"column": ["*"]

您可以指定column字段信息,配置如下。

"column":
    {
       "type": "long",
       "index": 0    //从HttpFile文本第一列获取int字段。
    },
    {
       "type": "string",
       "value": "alibaba"  //从HttpFile Reader内部生成alibaba的字符串字段作为当前字段。
    }
说明

对于您指定的column信息,type必须填写,index和value必须选择其一,三者不能同时填写。

全部按照STRING类型读取。

fieldDelimiter

读取的字段分隔符。

说明

HttpFile Reader在读取数据时,需要指定字段分割符,如果不指定默认为英文逗号(,),界面配置中也会默认填写为(,)。

如果分隔符不可见,请填写Unicode编码。例如,\u001b\u007c

,

lineDelimiter

读取的行分隔符。

说明

fileFormat取值为TEXT时,本参数有效。

compress

文本压缩类型,默认不填写(即不压缩)。支持压缩类型为gzipbzip2zip

不压缩

encoding

读取文件的编码配置。

utf-8

nullFormat

文本文件中无法使用标准字符串定义null(空指针),数据同步提供nullFormat定义哪些字符串可以表示为null。 例如:

  • nullFormat:"null":表示“可见字符”。如果源头数据是null,则数据同步视作null字段。

  • nullFormat:"\u0001":表示“不可见字符”。如果源头数据是字符串"\u0001",则数据同步视作null字段。

  • 未配置"nullFormat"参数:表示来源是什么数据就直接按照什么数据写入目标端,不做任何转换。

skipHeader

类CSV格式文件可能存在表头为标题情况,同步数据时可选择是否需要跳过表头(即不同步表头数据)。

  • true:跳过。

  • false:不跳过。

压缩文件模式下不支持skipHeader参数。常见的文件压缩格式为gzipbzip2zip

false

connectTimeoutSeconds

(高级模式,向导模式不支持此参数的配置)

建立HTTP连接的超时时间,单位秒,超过本配置项时,任务失败。

60

socketTimeoutSeconds

(高级模式,向导模式不支持此参数的配置)

HTTP连接失去响应,单位秒,前后报文传输间隔大于此配置项时,任务失败。

3600

相关文档