DataWorksData Integration支援HttpFile資料來源,可以通過HTTP協議下載檔案並同步檔案至目標資料來源。
使用限制
HttpFile資料來源僅支援使用獨享Data Integration資源群組。
支援的欄位類型
資料類型 | 說明 |
STRING | 文本類型。 |
LONG | 整數。 |
BYTES | 位元組數組,將讀取到的常值內容轉為UTF-8編碼的位元組數組。 |
BOOL | 布爾型。 |
DOUBLE | 小數。 |
DATE | 日期時間類型,支援以下日期時間格式:
|
資料同步任務開發:HttpFile同步流程引導
HttpFile資料同步任務的配置入口和通用配置流程指導可參見下文的配置指導,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:HttpFile指令碼Demo與參數說明。
附錄:HttpFile指令碼Demo與參數說明
離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要在任務指令碼中按照指令碼的統一格式要求編寫指令碼中的reader參數,指令碼模式的統一要求請參見通過指令碼模式配置離線同步任務,以下為您詳細介紹指令碼模式下資料來源Reader參數的配置方式。
HttpFile 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"
}
]
}
}
HttpFile 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(null 指標),資料同步提供nullFormat定義哪些字串可以表示為null。 例如:
| 否 | 無 |
skipHeader | 類CSV格式檔案可能存在表頭為標題情況,同步資料時可選擇是否需要跳過表頭(即不同步表頭資料)。
壓縮檔模式下不支援skipHeader參數。常見的檔案壓縮格式為gzip、bzip2和zip。 | 否 | false |
connectTimeoutSeconds (進階模式,嚮導模式不支援此參數的配置) | 建立HTTP串連的逾時時間,單位秒,超過本配置項時,任務失敗。 | 否 | 60 |
socketTimeoutSeconds (進階模式,嚮導模式不支援此參數的配置) | HTTP串連失去響應,單位秒,前後報文傳輸間隔大於此配置項時,任務失敗。 | 否 | 3600 |
相關文檔
資料來源配置,詳情請參見支援的資料來源及同步方案。
資料來源的許可權管理,詳情請參見RAM角色授權模式。