ChunJun FTP Connector 功能扩展解读
本文将从 FTP Connector 的功能详解,自定义文件切割及自定义 FileFormat 三个方面为大家带来 ChunJun FTP Connector 的功能扩展分享。
FTP Connector 详解
FTP 是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层,提供一种在服务器和客户机之间上传和下载文件的有效方式。
FTP Connector 基本功能
ChunJun FTP Connector 基本功能如下:
· 支持 FTP 协议 与 SFTP 协议读写;
· 支持断点续传;
· 支持并发读写;
· 支持多种文件格式的读写。
断点续传
主要的类:Position,Data,FtpFileReader,代码如下:
并发读写
代码如下:
自定义文件切割
ConcurrentFileSplitFactory 像一个工厂,通过这个工厂去创建其他的类,包括 ConcurrentZipCompressSplit、ConcurrentCsvSplit 以及默认的 DefaultFileSplit,类结构如下图:
处理流程
FTP 读取文件时,通过 ConcurrentFileSplit 对文件进行切割,切割成多个 FTPFileSplit,配置到 Channel 中,最后根据 FileSplit 保存的信息,自定义读取文件。
处理逻辑
· 使用 maxFetchSize 配置,当同步的文件大于这个值时,开启大文件切割功能
· 对文件进行分析,构建分片,以文件大小1.2G、分片数4举例,每个分片数处理的数据量约等于1.2G / 4 = 300M
其中使用的分片构建算法逻辑如下:
1)从第300M偏移量开始读文件,按单个字节遍历文件,记录下一个'\n'的文件偏移量,如300.1M,第一个分片处理文件的范围就是0~ 300.1M
2)第二个分片从 300.1M + 300M开始读文件,遍历文件,记录下一个'\n'的文件偏移量,如600.3M,第二个分片处理文件的范围就是300.1M~ 600.3M
3)以此类推, 构建完所有的分片
· 单个文件的数据在多个通道并发读取后,写入目标表时,无法对多个通道的数据按原文件中记录的顺序进行写入
单个并行度读取耗时为122s:
8个并行度读取平均耗时为88s:
自定义 FileFormat
自定义 FlieFormat 同样是以工厂模式实现的,ChunJun 目前已实现 Excel、Csv、Text 三种文件结构,当前仍然局限于 FTP,后续会扩展成公共模块,独属于 ChunJun 的 Format。类结构如下图:
ChunJun 设计方案
FTP 增加的功能点如下:
· FTP支持用户自定义解析方式;
· FTP 支持自定义数据转换。
针对上述新增功能点 ChunJun 设计方案如下:
· FTP soource 新增参数 customFormatClassName:自定义解析器类名
· 抽象出公共模块,定义解析器接口 IFileReadFormat ,解析方式由用户实现以及 ChunJun 自带的实现
大量具体代码请看视频教程⬇️:
视频课程&PPT获取
视频课程:
https://www.bilibili.com/video/BV1Gm4y1a7Fv/?spm_id_from=333.999.0.0
课件获取:
https://www.dtstack.com/resources/1044
《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm
《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm 想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szkyzg
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术qun」,交流最新开源技术信息,qun号码:30537511,项目地址:https://github.com/DTStack

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
战争、疫情、通货膨胀,资源网站 RARBG 宣布关闭
RARBG 是一个著名的 BitTorrent 网站,提供了许多高质量的电影、电视剧、音乐、游戏和软件等种子资源。它成立于 2008 年,总部位于保加利亚,已经成为了 BitTorrent 社区中备受喜爱的网站之一。 RARBG 用户界面简洁明了,资源数量很丰富,并且资源更新也非常频繁(比如前几天就已经有《疾速追杀 4》的资源了),基本上每个人都能在这里找到自己想要的资源。此外,RARBG 还提供了资源健康度评估和评论功能,方便用户选择高质量的资源和了解其他用户的评价。 如今,RARBG 在官网放出一则声明,宣布停止运营,并简单地阐述了关闭网站的原因: 大家好, 我们想通知你,我们已决定关闭我们的网站。 过去的两年对我们来说非常困难 - 团队中的一些成员因疫情所带来的并发症而去世,其他成员也遭受其所带来的副作用影响,至今仍无法工作。 有些人还在欧洲的战争中战斗。 此外,欧洲数据中心电价上涨也给我们带来了很大压力。 通货膨胀使得我们无法再承担日常开支。 因此,我们不能再继续运营这个网站了,因为巨额费用已经超出了能够承担的范畴。 经过一致投票后,我们决定不能再做下去了。 很抱歉:( 再见 ...
- 下一篇
SREWorks v1.5 版本发布 | 基于实时作业平台的日志聚类开源
在经过v1.0~v1.4四个版本迭代后,SREWorks的核心底座已经表现出极高的稳定性和成熟性。在v1.5版本中,SREWorks开发团队在核心底座上,进行了较多的数智化能力迭代。同时,在数智能力迭代过程中,我们也维持着与SREWorks用户较高的沟通频率。我们发现大家普遍对于监控数据之上的数智化能力比较关注,于是我们在这些点上做了一些深挖分析,发现普遍都会遇到这样几个问题: 自研监控系统在数据体量上升后,可靠性下降。 日志等各类非结构化的数据引入,导致工程复杂性急剧上升,实时性方面也面临更大的挑战。 简单的表达式(expression)往往无法满足业务多样化的监控需求。 于是很多用户选择从自研监控系统切换至流计算引擎Flink,但是Flink Job本身的使用门槛以及运维又成为一大难题。SREWorks开发团队经过多轮的分析研究,决定将这些问题拆成两阶段解决: 降低Flink Job的使用门槛,赋能SRE将运维需求快速转化为计算力,使SRE能够真正具备touch数据的能力。 利用SREWorks工程能力构建开源Flink运维产品,进一步降低Flink运维难度。 在v1.5版本中,我...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境