全部產品
Search
文件中心

DataWorks:COS資料來源

更新時間:Oct 23, 2025

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欄位資訊,配置如下。

"column":    
    {       
        "type": "long",       
        "index": 0 //從COS文本第一列擷取int欄位。
    },    
    {       
        "type": "string",       
        "value": "alibaba" //從COS內部產生alibaba的字串欄位作為當前欄位。    
}
說明

所指定的column資訊,type必須填寫,index和value必須選擇其一。

全部按照STRING類型讀取。

fieldDelimiter

讀取的欄位分隔符號。COS Reader在讀取資料時,需要指定欄位分隔符號,如果不指定,預設為英文逗號',',介面配置中也會預設回填英文逗號。如果分隔字元不可見,請填寫Unicode編碼。例如:\u001b\u007c

,

lineDelimiter

讀取的行分隔字元。當fileFormat取值為text時,本參數有效。

compress

文本壓縮類型,預設不填寫(即不壓縮)。支援壓縮類型為gzip、bzip2和zip。

不壓縮

encoding

讀取檔案的編碼配置。

utf-8

nullFormat

文字檔中無法使用標準字串定義null(null 指標),資料同步系統提供nullFormat定義哪些字串可以表示為null。例如:

  • 配置nullFormat:"null",等同於“可見字元”,如果源頭資料是null,則資料同步視作null欄位,寫入目標表。

  • 配置nullFormat:"\u0001",等同於“不可見字元”,如果源頭資料是字串"\u0001",則將該欄位視作null欄位,寫入目標表。

  • 不寫nullFormat這個參數,等同於“未配置”,代表來源是什麼資料就直接按照什麼資料寫入目標端,不作任何轉換。

skipHeader

CSV格式檔案通過skipHeader配置是否讀取表頭內容。

  • True:同步資料來源的時候讀取表頭內容。

  • False:同步資料來源的時候不讀取表頭內容。

說明

壓縮檔模式下不支援skipHeader

false

parquetSchema

以Parquet檔案格式讀取COS檔案時需配置,若且唯若fileFormatparquet時生效,是用於描述資料結構的定義。通用格式如下:

message MessageType名 {
是否必填 資料類型 列名;
是否必填 資料類型 列名;
......................;
}

parquetSchema的配置格式說明:

  • MessageType名:填寫名稱。

  • 是否必填:required表示非空,optional表示可為空白。推薦全部填寫optional。

  • 資料類型:Parquet檔案支援BOOLEAN、Int32、Int64、Int96、FLOAT、DOUBLE、BINARY(如果是字串類型,請填BINARY)和fixed_len_byte_array類型。每行列設定必須以分號結尾,最後一行也要寫上分號。

配置樣本如下所示。

{"parquetSchema": "message UserProfile 
{ optional int32 minute_id; 
  optional int32 dsp_id; 
  optional int32 adx_pid; 
  optional int64 req; 
  optional int64 res; 
  optional int64 suc; 
  optional int64 imp; 
  optional double revenue; }"
}

csvReaderConfig

讀取CSV類型檔案參數配置為Map類型。讀取CSV類型檔案使用的CsvReader進行讀取,不配置則使用預設值。