首页 > 其他分享 >ChunJun FTP Connector 功能扩展解读

ChunJun FTP Connector 功能扩展解读

时间:2023-06-01 11:34:31浏览次数:47  
标签:FTP 自定义 文件 Connector ChunJun 分片

本文将从 FTP Connector 的功能详解,自定义文件切割及自定义 FileFormat 三个方面为大家带来 ChunJun FTP Connector 的功能扩展分享。

FTP Connector 详解

FTP 是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层,提供一种在服务器和客户机之间上传和下载文件的有效方式。

FTP Connector 基本功能

ChunJun FTP Connector 基本功能如下:

· 支持 FTP 协议 与 SFTP 协议读写;

· 支持断点续传;

· 支持并发读写;

· 支持多种文件格式的读写。

断点续传

主要的类:Position,Data,FtpFileReader,代码如下:

ChunJun FTP Connector 功能扩展解读_数据

ChunJun FTP Connector 功能扩展解读_偏移量_02

并发读写

代码如下:

ChunJun FTP Connector 功能扩展解读_数据_03

自定义文件切割

ConcurrentFileSplitFactory 像一个工厂,通过这个工厂去创建其他的类,包括 ConcurrentZipCompressSplit、ConcurrentCsvSplit 以及默认的 DefaultFileSplit,类结构如下图:

ChunJun FTP Connector 功能扩展解读_数据_04

处理流程

FTP 读取文件时,通过 ConcurrentFileSplit 对文件进行切割,切割成多个 FTPFileSplit,配置到 Channel 中,最后根据 FileSplit 保存的信息,自定义读取文件。

ChunJun FTP Connector 功能扩展解读_自定义_05

处理逻辑

· 使用 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:

ChunJun FTP Connector 功能扩展解读_偏移量_06

8个并行度读取平均耗时为88s:

ChunJun FTP Connector 功能扩展解读_数据_07

自定义 FileFormat

自定义 FlieFormat 同样是以工厂模式实现的,ChunJun 目前已实现 Excel、Csv、Text 三种文件结构,当前仍然局限于 FTP,后续会扩展成公共模块,独属于 ChunJun 的 Format。类结构如下图:

ChunJun FTP Connector 功能扩展解读_偏移量_08

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://fs80.cn/380a4b

《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1

标签:FTP,自定义,文件,Connector,ChunJun,分片
From: https://blog.51cto.com/u_15137832/6393047

相关文章

  • FTP搭建及内网穿透(Windows环境)、两种(主动、被动)模式
    有两种方法一、使用IIS搭建FTP需要注意的是被动端口设置完后要重启一下【MicrosoftFTPService】服务才能生效Windows系统IIS搭建FTP服务如何配置被动端口?1、打开IIS管理器,点击左侧的服务器,进入服务器设置主页找到 FTP功能 中的 FTP防火墙支持 点击进入2、在数据通道端......
  • ChunJun FTP Connector 功能扩展解读
    本文将从FTPConnector的功能详解,自定义文件切割及自定义FileFormat三个方面为大家带来ChunJunFTPConnector的功能扩展分享。FTPConnector详解FTP是用于在网络上进行文件传输的一套标准协议,它工作在OSI模型的第七层,TCP模型的第四层,即应用层,提供一种在服务器和客......
  • CentOS7配FTPS
    CentOS7配FTPS:yuminstallvsftpdvi/etc/vsftpd/vsftpd.confssl_enable=YESallow_anon_ssl=NO#force_local_data_ssl=YES#force_local_logins_ssl=YESrsa_cert_file=/etc/vsftpd/ssl/aa.crtrsa_private_key_file=/etc/vsftpd/ssl/aa.key#ssl_sslv2=YES#ssl_sslv3=YESp......
  • Linux - 配置file & ftp方式的yum源
      环境准备1、两台Centos服务器:node1、node22、配置ip:node1(192.168.56.111)、node2(192.168.56.112)3、关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld4、禁用SELinux:setenforce0&&sed-i's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/c......
  • linux FTP文本传输
    目录一、文本传输协议二、连接方式三、程序安装四、黑名单和白名单五、实验1.实验一:匿名用户下载与上传2.实验二:关闭匿名用户登录,允许普通用户登录在家目录上传和下载3.实验三:禁止用户切换目录,只能在家目录操作4.实验四:黑名单限制test1登录   5.......
  • FTPClient API
    FTPClient是Java中一个常用的FTP客户端类库,提供了很多常用的FTP操作方法。下面是FTPClient中全部的方法详细说明:1.abort():终止当前正在进行的文件传输操作并丢弃所有未传输的数据。2.allocate(intbytes):为文件传输分配字节数组大小。3.appendFileStream(Stringremote)......
  • 【linux学习】mac启动ftp命令
    macOS默认关掉了FTP服务启动FTP服务终端命令:sudo-slaunchctlload-w/System/Library/LaunchDaemons/ftp.plist输入该命令之后,终端还会要求输入你的mac的密码。关闭FTP服务终端命令:sudo-slaunchctlunload-w/System/Library/LaunchDaemons/ftp.plist......
  • Linux-yum-ftp服务安装与配置
    1.为什么使用ftp安装ftp主要是还为了传输文件,但是我有一台服务器或者计算机,直接登录进去获取文件不行吗?为啥还要多此一举用ftp呢?原因是用ftp的话,它的会话是持久的,只有一次认证过程,传输多个文件都是使用同一个连接。因为ftp就是为远程文件交互而设计的,更适;而且有些时候只是为了......
  • python基础-进程池、submit同异步调用、shutdown参数、ProcessPoolExecutor进程池、进
    转载:(14条消息)python基础-进程池、submit同异步调用、shutdown参数、ProcessPoolExecutor进程池、进程池ftp_pythonsubmit_易辰_的博客-CSDN博客引入进程池在学习线程池之前,我们先看一个例子frommultiprocessingimportProcessimporttimedeftask(name):print(......
  • ftp&sftp&scp 安装使用!
    一、安装与激活1解压压缩包双击FileZilla安装程序,点击同意 2下一步(直接默认即可) 3下一步(直接默认即可) 4选择安装位置 5下一步(这一步默认即可)选择安装 二、使用1打开FileZilla 2建立站点,直接点击站点管理,或者点击文件后进入站点管理  3新建......