Simple Storage Service(簡稱S3)是一種專為從任意位置儲存和檢索任意數量的資料而構建的Object Storage Service,DataWorksData Integration支援使用Amazon S3 Reader外掛程式從S3資料庫讀取資料,本文為您介紹DataWorks的Amazon S3資料讀取能力。
支援的Amazon S3版本
Amazon S3 Reader使用Amazon官網提供的Java SDK擷取S3資料。
使用限制
暫不支援中國內地及中國香港地區的S3資料來源。
Amazon S3是非結構化資料存放區。對於Data Integration而言,目前Amazon S3 Reader支援的功能如下。
支援
不支援
支援且僅支援讀取
TXT
格式的檔案,且要求TXT
中Schema為一張二維表。支援類
CSV
格式檔案,自訂分隔字元。支援
ORC
、PARQUET
格式。支援多種類型資料讀取(使用String表示),支援列裁剪和列常量。
支援遞迴讀取、檔案名稱過濾。
支援文本壓縮,現有壓縮格式為
gzip
、bzip2
和zip
。說明一個壓縮包不允許多檔案打包壓縮。
多個
Object
支援並發讀取。
單個
Object(File)
不支援多線程並發讀取。單個
Object
在壓縮狀態下,不支援多線程並發讀取。單個
Object(File)
不能超過100 GB。
資料同步任務開發
Amazon S3資料同步任務的配置入口和通用配置流程指導可參見下文的配置指導,詳細的配置參數解釋可在配置介面查看對應參數的文案提示。
建立資料來源
在進行資料同步任務開發時,您需要在DataWorks上建立一個對應的資料來源,操作流程請參見建立並管理資料來源。
單表離線同步任務配置指導
操作流程請參見通過嚮導模式配置離線同步任務、通過指令碼模式配置離線同步任務。
指令碼模式配置的全量參數和指令碼Demo請參見下文的附錄:Amazon S3指令碼Demo與參數說明。
附錄:Amazon S3指令碼Demo與參數說明
附錄:離線任務指令碼配置方式
如果您配置離線任務時使用指令碼模式的方式進行配置,您需要在任務指令碼中按照指令碼的統一格式要求編寫指令碼中的reader參數,指令碼模式的統一要求請參見通過指令碼模式配置離線同步任務,以下為您介紹指令碼模式下的資料來源的Reader參數的指導詳情。
Amazon S3 Reader指令碼Demo
{
"type":"job",
"version":"2.0",//版本號碼。
"steps":[
{
"stepType":"s3",//外掛程式名。
"parameter":{
"nullFormat":"",//定義可以表示為null的字串。
"compress":"",//文本壓縮類型。
"datasource":"",//資料來源。
"column":[//欄位。
{
"index":0,//列序號。
"type":"string"//資料類型。
},
{
"index":1,
"type":"long"
},
{
"index":2,
"type":"double"
},
{
"index":3,
"type":"boolean"
},
{
"format":"yyyy-MM-dd HH:mm:ss", //時間格式。
"index":4,
"type":"date"
}
],
"skipHeader":"",//類CSV格式檔案可能存在表頭為標題情況,需要跳過。
"encoding":"",//編碼格式。
"fieldDelimiter":",",//欄位分隔符號。
"fileFormat": "",//文本類型。
"object":[]//object首碼。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":""//錯誤記錄數。
},
"speed":{
"throttle":true,//當throttle值為false時,mbps參數不生效,表示不限流;當throttle值為true時,表示限流。
"concurrent":1 //作業並發數。
"mbps":"12",//限流,此處1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Amazon S3 Reader指令碼參數
參數 | 描述 | 是否必選 | 預設值 |
datasource | 資料來源名稱,指令碼模式支援添加資料來源,該配置項輸入的內容必須和添加的資料來源名稱保持一致。 | 是 | 無 |
Object | S3的Object資訊,支援填寫多個Object。例如,bucket中有test檔案夾,檔案夾中有ll.txt檔案,則Object填寫test/ll.txt。
說明
| 是 | 無 |
column | 讀取欄位列表,type指定來源資料的類型,index指定當前列來自於文本第幾列(以0開始),value指定當前類型為常量,不是從源標頭檔讀取資料,而是根據value值自動產生對應的列。 預設情況下,您可以全部按照String類型讀取資料,配置如下。
您可以指定column欄位資訊,配置如下。
說明 對於您指定的column資訊,type必須填寫,index和value必須選擇其一。 | 是 | 全部按照STRING類型讀取。 |
fieldDelimiter | 讀取的欄位分隔符號。 說明 Amazon S3 Reader在讀取資料時,需要指定欄位分割符,如果不指定預設為(,),介面配置中也會預設填寫為(,)。 如果分隔字元不可見,請填寫Unicode編碼。例如,\u001b、\u007c。 | 是 | 預設值:(,) |
compress | 文本壓縮類型,預設不填寫(即不壓縮)。支援壓縮類型為gzip、bzip2和zip。 | 否 | 不壓縮 |
encoding | 讀取檔案的編碼配置。 | 否 | utf-8 |
nullFormat | 文字檔中無法使用標準字串定義null(null 指標),資料同步系統提供nullFormat定義哪些字串可以表示為null。例如,您配置 | 否 | 無 |
skipHeader | CSV格式檔案通過skipHeader配置是否讀取表頭內容。
說明 壓縮檔模式下不支援skipHeader。 | 否 | false |
csvReaderConfig | 讀取CSV類型檔案參數配置,Map類型。讀取CSV類型檔案使用的CsvReader進行讀取,會有很多配置,不配置則使用預設值。 | 否 | 無 |