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(null 指標),資料同步系統提供nullFormat定義哪些字串可以表示為null。例如:
| 否 | 無 |
skipHeader | CSV格式檔案通過skipHeader配置是否讀取表頭內容。
說明 壓縮檔模式下不支援skipHeader。 | 否 | false |
parquetSchema | 以Parquet檔案格式讀取COS檔案時需配置,若且唯若fileFormat為parquet時生效,是用於描述資料結構的定義。通用格式如下: parquetSchema的配置格式說明:
配置樣本如下所示。 | 否 | 無 |
csvReaderConfig | 讀取CSV類型檔案參數配置為Map類型。讀取CSV類型檔案使用的CsvReader進行讀取,不配置則使用預設值。 | 否 | 無 |