最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

ChunJun FTP Connector 功能擴(kuò)展解讀

2023-06-01 11:33 作者:袋鼠云  | 我要投稿

本文將從 FTP Connector 的功能詳解,自定義文件切割及自定義 FileFormat 三個(gè)方面為大家?guī)?ChunJun FTP Connector 的功能擴(kuò)展分享。

FTP Connector 詳解

FTP 是用于在網(wǎng)絡(luò)上進(jìn)行文件傳輸?shù)囊惶讟?biāo)準(zhǔn)協(xié)議,它工作在 OSI 模型的第七層, TCP 模型的第四層, 即應(yīng)用層,提供一種在服務(wù)器和客戶機(jī)之間上傳和下載文件的有效方式。

FTP Connector 基本功能

ChunJun FTP Connector 基本功能如下:

· 支持 FTP 協(xié)議 與 SFTP 協(xié)議讀寫;

· 支持?jǐn)帱c(diǎn)續(xù)傳;

· 支持并發(fā)讀寫;

· 支持多種文件格式的讀寫。

斷點(diǎn)續(xù)傳

主要的類:Position,Data,F(xiàn)tpFileReader,代碼如下:

并發(fā)讀寫

代碼如下:

自定義文件切割

ConcurrentFileSplitFactory 像一個(gè)工廠,通過這個(gè)工廠去創(chuàng)建其他的類,包括 ConcurrentZipCompressSplit、ConcurrentCsvSplit 以及默認(rèn)的 DefaultFileSplit,類結(jié)構(gòu)如下圖:

處理流程

FTP 讀取文件時(shí),通過 ConcurrentFileSplit 對文件進(jìn)行切割,切割成多個(gè) FTPFileSplit,配置到 Channel 中,最后根據(jù) FileSplit 保存的信息,自定義讀取文件。

處理邏輯

· 使用 maxFetchSize 配置,當(dāng)同步的文件大于這個(gè)值時(shí),開啟大文件切割功能

· 對文件進(jìn)行分析,構(gòu)建分片,以文件大小1.2G、分片數(shù)4舉例,每個(gè)分片數(shù)處理的數(shù)據(jù)量約等于1.2G / 4 = 300M

其中使用的分片構(gòu)建算法邏輯如下:

1)從第300M偏移量開始讀文件,按單個(gè)字節(jié)遍歷文件,記錄下一個(gè)'\n'的文件偏移量,如300.1M,第一個(gè)分片處理文件的范圍就是0~ 300.1M

2)第二個(gè)分片從 300.1M + 300M開始讀文件,遍歷文件,記錄下一個(gè)'\n'的文件偏移量,如600.3M,第二個(gè)分片處理文件的范圍就是300.1M~ 600.3M

3)以此類推, 構(gòu)建完所有的分片

· 單個(gè)文件的數(shù)據(jù)在多個(gè)通道并發(fā)讀取后,寫入目標(biāo)表時(shí),無法對多個(gè)通道的數(shù)據(jù)按原文件中記錄的順序進(jìn)行寫入

單個(gè)并行度讀取耗時(shí)為122s:

8個(gè)并行度讀取平均耗時(shí)為88s:

自定義 FileFormat

自定義 FlieFormat 同樣是以工廠模式實(shí)現(xiàn)的,ChunJun 目前已實(shí)現(xiàn) Excel、Csv、Text 三種文件結(jié)構(gòu),當(dāng)前仍然局限于 FTP,后續(xù)會擴(kuò)展成公共模塊,獨(dú)屬于 ChunJun 的 Format。類結(jié)構(gòu)如下圖:

ChunJun 設(shè)計(jì)方案

FTP 增加的功能點(diǎn)如下:

· FTP支持用戶自定義解析方式;

· FTP 支持自定義數(shù)據(jù)轉(zhuǎn)換。

針對上述新增功能點(diǎn) ChunJun 設(shè)計(jì)方案如下:

· FTP soource 新增參數(shù) customFormatClassName:自定義解析器類名

· 抽象出公共模塊,定義解析器接口 IFileReadFormat ,解析方式由用戶實(shí)現(xiàn)以及 ChunJun 自帶的實(shí)現(xiàn)

大量具體代碼請看視頻教程??:

視頻課程&PPT獲取

視頻課程:

https://www.bilibili.com/video/BV1Gm4y1a7Fv/?spm_id_from=333.999.0.0

課件獲?。?/p>

https://www.dtstack.com/resources/1044

《數(shù)據(jù)治理行業(yè)實(shí)踐白皮書》下載地址:https://fs80.cn/l134d5?

《數(shù)棧V6.0產(chǎn)品白皮書》下載地址:https://fs80.cn/cw0iw1

想了解或咨詢更多有關(guān)袋鼠云大數(shù)據(jù)產(chǎn)品、行業(yè)解決方案、客戶案例的朋友,瀏覽袋鼠云官網(wǎng):https://www.dtstack.com/?src=szbzhan

同時(shí),歡迎對大數(shù)據(jù)開源項(xiàng)目有興趣的同學(xué)加入「袋鼠云開源框架釘釘技術(shù) qun」,交流最新開源技術(shù)信息,qun 號碼:30537511,項(xiàng)目地址:https://github.com/DTStack


ChunJun FTP Connector 功能擴(kuò)展解讀的評論 (共 條)

分享到微博請遵守國家法律
兴宁市| 老河口市| 绥宁县| 潮州市| 高碑店市| 沙坪坝区| 莱阳市| 汕头市| 巴楚县| 电白县| 沾化县| 衡南县| 龙海市| 都兰县| 崇礼县| 儋州市| 新乐市| 武威市| 大姚县| 黔东| 临江市| 西华县| 佳木斯市| 海门市| 浦东新区| 靖远县| 昆山市| 彭山县| 垫江县| 定州市| 鹿泉市| 南皮县| 邮箱| 宁国市| 清河县| 隆林| 汨罗市| 昂仁县| 宣城市| 容城县| 诏安县|