全部產品
Search
文件中心

DataWorks:HttpFile資料來源

更新時間:Oct 24, 2024

DataWorksData Integration支援HttpFile資料來源,可以通過HTTP協議下載檔案並同步檔案至目標資料來源。

使用限制

HttpFile資料來源支援使用Serverless資源群組(推薦)獨享Data Integration資源群組

支援的欄位類型

資料類型

說明

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(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

相關文檔