FTP數(shù)據(jù)源
FTP數(shù)據(jù)源為您提供讀取和寫(xiě)入FTP雙向通道的功能,本文為您介紹DataWorks的FTP數(shù)據(jù)同步的能力支持情況。
使用限制
FTP Reader實(shí)現(xiàn)了從遠(yuǎn)程FTP文件讀取數(shù)據(jù)并轉(zhuǎn)為數(shù)據(jù)同步協(xié)議的功能,遠(yuǎn)程FTP文件本身是無(wú)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。對(duì)于數(shù)據(jù)同步而言,目前FTP Reader支持的功能如下所示:
支持 | 不支持 |
|
|
FTP Writer實(shí)現(xiàn)了從數(shù)據(jù)集成協(xié)議轉(zhuǎn)為FTP文件功能,F(xiàn)TP文件本身是無(wú)結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)。目前FTP Writer支持的功能如下:
支持 | 不支持 |
|
|
支持的字段類(lèi)型
遠(yuǎn)程FTP文件本身不提供數(shù)據(jù)類(lèi)型,該類(lèi)型是DataX FtpReader定義。
DataX內(nèi)部類(lèi)型 | 遠(yuǎn)程FTP文件數(shù)據(jù)類(lèi)型 |
LONG | LONG |
DOUBLE | DOUBLE |
STRING | STRING |
BOOLEAN | BOOLEAN |
DATE | DATE |
創(chuàng)建數(shù)據(jù)源
在進(jìn)行數(shù)據(jù)同步任務(wù)開(kāi)發(fā)時(shí),您需要在DataWorks上創(chuàng)建一個(gè)對(duì)應(yīng)的數(shù)據(jù)源,操作流程請(qǐng)參見(jiàn)創(chuàng)建并管理數(shù)據(jù)源,詳細(xì)的配置參數(shù)解釋可在配置界面查看對(duì)應(yīng)參數(shù)的文案提示。
數(shù)據(jù)同步任務(wù)開(kāi)發(fā)
數(shù)據(jù)同步任務(wù)的配置入口和通用配置流程可參見(jiàn)下文的配置指導(dǎo)。
單表離線同步任務(wù)配置指導(dǎo)
操作流程請(qǐng)參見(jiàn)通過(guò)向?qū)J脚渲秒x線同步任務(wù)、通過(guò)腳本模式配置離線同步任務(wù)。
腳本模式配置的全量參數(shù)和腳本Demo請(qǐng)參見(jiàn)下文的附錄:腳本Demo與參數(shù)說(shuō)明。
附錄:腳本Demo與參數(shù)說(shuō)明
離線任務(wù)腳本配置方式
如果您配置離線任務(wù)時(shí)使用腳本模式的方式進(jìn)行配置,您需要按照統(tǒng)一的腳本格式要求,在任務(wù)腳本中編寫(xiě)相應(yīng)的參數(shù),詳情請(qǐng)參見(jiàn)通過(guò)腳本模式配置離線同步任務(wù),以下為您介紹腳本模式下數(shù)據(jù)源的參數(shù)配置詳情。
Reader腳本Demo
{
"type":"job",
"version":"2.0",//版本號(hào)。
"steps":[
{
"stepType":"ftp",//插件名。
"parameter":{
"path":[],//文件路徑。
"nullFormat":"",//null值。
"compress":"",//壓縮格式。
"datasource":"",//數(shù)據(jù)源。
"column":[//字段。
{
"index":0,//序列號(hào)。
"type":""http://字段類(lèi)型。
}
],
"skipHeader":"",//是否包含表頭。
"fieldDelimiter":",",//列分隔符。
"encoding":"UTF-8",//編碼格式。
"fileFormat":"csv"http://文本類(lèi)型。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"http://錯(cuò)誤記錄數(shù)。
},
"speed":{
"throttle":true,//當(dāng)throttle值為false時(shí),mbps參數(shù)不生效,表示不限流;當(dāng)throttle值為true時(shí),表示限流。
"concurrent":1 //作業(yè)并發(fā)數(shù)。
"mbps":"12",//限流,此處1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Reader腳本參數(shù)
參數(shù) | 描述 | 是否必選 | 默認(rèn)值 |
datasource | 數(shù)據(jù)源名稱(chēng),腳本模式支持添加數(shù)據(jù)源,此配置項(xiàng)填寫(xiě)的內(nèi)容必須要與添加的數(shù)據(jù)源名稱(chēng)保持一致。 | 是 | 無(wú) |
path | 遠(yuǎn)程FTP文件系統(tǒng)的路徑和文件名信息,需要填寫(xiě)包含路徑和文件后綴的完整文件路徑和文件名。這里可以支持填寫(xiě)多個(gè)路徑。
說(shuō)明
| 是 | 無(wú) |
column | 讀取字段列表,type指定源數(shù)據(jù)的類(lèi)型,index指定當(dāng)前列來(lái)自于文本第幾列(以0開(kāi)始),value指定當(dāng)前類(lèi)型為常量,不從源頭文件讀取數(shù)據(jù),而是根據(jù)value值自動(dòng)生成對(duì)應(yīng)的列。 默認(rèn)情況下,您可以全部按照STRING類(lèi)型讀取數(shù)據(jù),配置為
對(duì)于您指定的column信息,type必須填寫(xiě),index和value必須選擇其一。 | 是 | 無(wú) |
fieldDelimiter | 讀取的字段分隔符。 說(shuō)明 FTP Reader在讀取數(shù)據(jù)時(shí),需要指定字段分割符,如果不指定會(huì)默認(rèn)為(,),界面配置也會(huì)默認(rèn)填寫(xiě)(,)。 | 是 | , |
skipHeader | 類(lèi)CSV格式文件可能存在表頭為標(biāo)題情況,需要跳過(guò)。默認(rèn)不跳過(guò),壓縮文件模式下不支持skipHeader。 | 否 | false |
encoding | 讀取文件的編碼配置。 | 否 | utf-8 |
nullFormat | 文本文件中無(wú)法使用標(biāo)準(zhǔn)字符串定義null(空指針),數(shù)據(jù)同步提供nullFormat定義哪些字符串可以表示為null。 例如:
| 否 | 無(wú) |
markDoneFileName | 標(biāo)檔文件名,數(shù)據(jù)同步前檢查標(biāo)檔文件。如果標(biāo)檔文件不存在,等待一段時(shí)間重新檢查標(biāo)檔文件,如果檢查到標(biāo)檔文件開(kāi)始執(zhí)行同步任務(wù)。 | 否 | 無(wú) |
maxRetryTime | 表示檢查標(biāo)檔文件重試次數(shù),默認(rèn)重試60次,每一次重試間隔為1分鐘,共60分鐘。 | 否 | 60 |
csvReaderConfig | 讀取CSV類(lèi)型文件參數(shù)配置,Map類(lèi)型。讀取CSV類(lèi)型文件使用的CsvReader進(jìn)行讀取,會(huì)有很多配置,不配置則使用默認(rèn)值。 | 否 | 無(wú) |
fileFormat | 讀取的文件類(lèi)型,默認(rèn)情況下文件作為csv格式文件進(jìn)行讀取,內(nèi)容被解析為邏輯上的二維表結(jié)構(gòu)處理。如果您配置為binary,則表示按照純粹二進(jìn)制格式進(jìn)行復(fù)制傳輸。 通常在FTP、OSS等存儲(chǔ)之間進(jìn)行目錄結(jié)構(gòu)對(duì)等復(fù)制時(shí)使用,通常無(wú)需配置該項(xiàng)。 | 否 | 無(wú) |
Writer腳本Demo
{
"type":"job",
"version":"2.0",//版本號(hào)。
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"ftp",//插件名。
"parameter":{
"path":"",//文件路徑。
"fileName":"",//文件名稱(chēng)。
"nullFormat":"null",//null值。
"dateFormat":"yyyy-MM-dd HH:mm:ss",//時(shí)間格式。
"datasource":"",//數(shù)據(jù)源。
"writeMode":"",//寫(xiě)入模式。
"fieldDelimiter":",",//列分隔符。
"encoding":"",//編碼格式。
"fileFormat":""http://文本類(lèi)型。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"http://錯(cuò)誤記錄數(shù)。
},
"speed":{
"throttle":true,//當(dāng)throttle值為false時(shí),mbps參數(shù)不生效,表示不限流;當(dāng)throttle值為true時(shí),表示限流。
"concurrent":1, //作業(yè)并發(fā)數(shù)。
"mbps":"12"http://限流,此處1mbps = 1MB/s。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Writer腳本參數(shù)
參數(shù) | 描述 | 是否必選 | 默認(rèn)值 |
datasource | 數(shù)據(jù)源名稱(chēng),腳本模式支持添加數(shù)據(jù)源,此配置項(xiàng)填寫(xiě)的內(nèi)容必須要與添加的數(shù)據(jù)源名稱(chēng)保持一致。 | 是 | 無(wú) |
timeout | 連接FTP服務(wù)器連接超時(shí)時(shí)間,單位毫秒。 | 否 | 60,000(1分鐘) |
path | FTP文件系統(tǒng)的路徑信息,F(xiàn)TP Writer會(huì)寫(xiě)入Path目錄下多個(gè)文件。 | 是 | 無(wú) |
fileName | FTP Writer寫(xiě)入的文件名,該文件名會(huì)添加隨機(jī)的后綴作為每個(gè)線程寫(xiě)入實(shí)際文件名。 | 是 | 無(wú) |
singleFileOutput | FtpWriter寫(xiě)入的文件名受fileName控制,默認(rèn)行會(huì)添加隨機(jī)的后綴作為每個(gè)線程寫(xiě)入實(shí)際文件名。如果您不需要默認(rèn)添加的隨機(jī)后綴,您可以將singleFileOutput配置為true,寫(xiě)出文件名將會(huì)是您指定的完整文件名。 | 否 | false |
writeMode | FTP Writer寫(xiě)入前數(shù)據(jù)清理處理模式:
| 是 | 無(wú) |
fieldDelimiter | 寫(xiě)入的字段分隔符。 | 是,單字符 | 無(wú) |
skipHeader | 類(lèi)CSV格式文件可能存在表頭為標(biāo)題情況,需要跳過(guò)。默認(rèn)不跳過(guò),壓縮文件模式下不支持skipHeader。 | 否 | false |
compress | 支持gzip和bzip2兩種壓縮形式。 | 否 | 無(wú)壓縮 |
encoding | 讀取文件的編碼配置。 | 否 | utf-8 |
nullFormat | 文本文件中無(wú)法使用標(biāo)準(zhǔn)字符串定義null(空指針),數(shù)據(jù)集成提供nullFormat定義哪些字符串可以表示為null。 例如您配置 | 否 | 無(wú) |
dateFormat | 日期類(lèi)型的數(shù)據(jù)序列化到文件中時(shí)的格式,例如"dateFormat":"yyyy-MM-dd"。 | 否 | 無(wú) |
fileFormat | 文件寫(xiě)出的格式,包括CSV和TEXT兩種,CSV是嚴(yán)格的CSV格式,如果待寫(xiě)數(shù)據(jù)包括列分隔符,則會(huì)按照CSV的轉(zhuǎn)義語(yǔ)法轉(zhuǎn)義,轉(zhuǎn)義符號(hào)為雙引號(hào)。TEXT格式是用列分隔符簡(jiǎn)單分割待寫(xiě)數(shù)據(jù),對(duì)于待寫(xiě)數(shù)據(jù)包括列分隔符情況下不做轉(zhuǎn)義。 | 否 | TEXT |
header | header:txt文本(包括csv、text等)寫(xiě)出時(shí)的表頭,腳本模式支持配置表頭信息,例如"header":["id","name","age"],表示將id、name、age作為表頭寫(xiě)入ftp文件的第一行。 | 否 | 無(wú) |
markDoneFileName |
| 否 | 無(wú) |