一种FTP数据库与HDFS数据库自动互传数据的方法
技术领域
本发明涉及数据库迁移技术领域,具体地讲涉及一种FTP数据库与HDFS数据库自动互传数据的方法。
背景技术
在互联网时代,用户行为数据量激增,涉及的数据信息广泛且庞大,分散式的数据存储,不利于数据的分析、统计和使用。由于的数据量的庞大,数据信息格式的多样式,传统单一的数据库存储方式越来越难以解决复杂多变的业务需求。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上,HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用;FTP是TCP/IP网络上两台计算机传送文件的协议,它通过Internet控制客户机和服务器文件的双向传输,FTP客户机可以给服务器发出命令来下载文件,上传文件,创建或改变服务器上的目录。因此实现HDFS数据库与FTP数据库之间的数据转换与互传具有重要意义。
发明内容
根据现有技术中存在的问题,本发明提供了一种FTP数据库与HDFS数据库自动互传数据的方法,其降低了数据转换的错误率,实现了数据的高效抽取与互传。
本发明采用以下技术方案:
一种FTP数据库与HDFS数据库自动互传数据的方法,包括如下步骤:
S1,数据抽取,将GetFTP处理器与FTP数据库创建连接服务,GetFTP处理器进而查询并抽取到FTP数据库中的FTP数据;将GetHDFS处理器与HDFS数据库创建连接服务,GetHDFS处理器进而查询并抽取到HDFS数据库中的HDFS数据;
S2,数据转换,在GetFTP处理器和GetHDFS处理器的下游设置UpdateAttribute处理器,并对UpdateAttribute处理器进行属性配置;UpdateAttribute处理器将抽取到的FTP数据转换为HDFS数据,或者将抽取到的HDFS数据转换为FTP数据;
S3,数据加载,在UpdateAttribute处理器的下游分别设置PutHDFS处理器和PutFTP处理器,并分别对PutHDFS处理器和PutFTP处理器进行属性配置;PutHDFS处理器将步骤S2中转换得到的HDFS数据加载到HDFS数据库的目标文件夹中,PutFTP处理器将步骤S2中转换得到的FTP数据加载到FTP数据库的目标文件夹中。
优选的,步骤S1中,将GetFTP处理器与FTP数据库创建连接服务,即设置GetFTP处理器的连接属性,包括对属性Port、Connection Mode、Transfer Mode、Polling Interval、Search Recursively、Ignore DottedFiles、Delete Original的值的设置;即将属性Port的值设置为21,属性Connection Mode的值设置为Passive,属性TransferMode的值设置为Binary,属性Polling Interval的值设置为60sec,属性Search Recursively的值设置为false,属性Ignore Dotted Files的值设置为true,属性Delete Original的值设置为true。
进一步优选的,步骤S1中,将GetHDFS处理器与HDFS数据库创建连接服务,即设置GetHDFS处理器的连接属性,包括对属性Kerberos Relogin Period、RecurseSubdirectories、Keep Source File、Filter Match Name Only、Ignore Dotted Files、Minimum File Age的值的设置;即将属性Kerberos Relogin Period的值设置为4hours,将属性Recurse Subdirectories的值设置为ture,将属性Keep Source File的值设置为false,将属性Filter Match Name Only的值设置为ture,将属性Ignore Dotted Files的值设置为ture,将属性Minimum File Age的值设置为0sec。
更进一步优选的,步骤S1中,所述GetFTP处理器对FTP数据库中的FTP数据和GetHDFS处理器对HDFS数据库中的HDFS数据的抽取节点的文件类型包括定长格式文件、列分隔符字段文件和“名称-值”对文件。
优选的,步骤S2中,UpdateAttribute处理器将抽取到的FTP数据转换为HDFS数据或者将抽取到的HDFS数据转换为FTP数据之前,均需对抽取到的FTP数据或HDFS数据依次进行路由、过滤、分组和踢重处理,从而得到进行转换工作所需的数据。
进一步优选的,步骤S2中,对UpdateAttribute处理器进行属性配置包括对属性Store State的值的设置,属性Store State的值表示存储状态,将属性Store State的值设置为Do not store state,表示以无状态形式提供存储流文件。
优选的,步骤S3中,对PutHDFS处理器进行属性配置包括对属性Kerberos ReloginPeriod、Conflict Resolution Strategy的值的设置,即将属性Kerberos Relogin Period的值设置为4hours,将属性Conflict Resolution Strategy的值设置为fail。
进一步优选的,步骤S3中,对PutFTP处理器进行属性配置包括对属性Port、CreateDirectory、Batch Size、Connection timeout、Data timeout、Conflict Resolution、DotRename、Transfer Mode的值的设置,即将属性Port的值设置为21,将属性CreateDirectory的值设置为false,将属性Batch Size的值设置为500,将属性Connectiontimeout的值设置为30sec,将属性Data timeout的值设置为30sec,将属性ConflictResolution的值设置为NONE,将属性Dot Rename的值设置为ture,将属性Transfer Mode的值设置为Binary。
优选的,所述GetFTP处理器、GetHDFS处理器与UpdateAttribute处理器之间,UpdateAttribute处理器与PutHDFS处理器、PutFTP处理器之间均使用任务队列作为数据缓冲区。
本发明的优点和有益效果在于:
1)本发明通过设置GetFTP处理器、GetHDFS处理器、UpdateAttribute处理器、PutHDFS处理器和PutFTP处理器,且各处理器之间均使用任务队列作为数据缓冲区,并对各处理器的属性的值进行设置,使得FTP数据库中的FTP数据与HDFS数据库中的HDFS数据实现自动转换与互传,最终加载存储在目标数据库中。整个转换互传过程中,每个处理器的属性的值的设置都是可视化的,操作过程可控性较强,使得数据转换互传的错误率大大降低,实现了数据的高效抽取与互传。
附图说明
图1为本发明的方法的流程图。
图2为本发明的GetFTP处理器的属性的值的设置图。
图3为本发明的GetHDFS处理器的属性的值的设置图。
图4为本发明的UpdateAttribute处理器的属性的值的设置图。
图5为本发明的PutHDFS处理器的属性的值的设置图。
图6为本发明的PutFTP处理器的属性的值的设置图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种FTP数据库与HDFS数据库自动互传数据的方法,包括如下步骤:
S1,数据抽取,将GetFTP处理器与FTP数据库创建连接服务,GetFTP处理器进而查询并抽取到FTP数据库中的FTP数据;将GetHDFS处理器与HDFS数据库创建连接服务,GetHDFS处理器进而查询并抽取到HDFS数据库中的HDFS数据;
具体的,如图2所示,,将GetFTP处理器与FTP数据库创建连接服务,即设置GetFTP处理器的连接属性,包括对属性Port、Connection Mode、Transfer Mode、PollingInterval、Search Recursively、Ignore Dotted Files、Delete Original的值的设置;即将属性Port的值设置为21,属性Connection Mode的值设置为Passive,属性Transfer Mode的值设置为Binary,属性Polling Interval的值设置为60sec,属性Search Recursively的值设置为false,属性Ignore Dotted Files的值设置为true,属性Delete Original的值设置为true。
如图3所示,将GetHDFS处理器与HDFS数据库创建连接服务,即设置GetHDFS处理器的连接属性,包括对属性Kerberos Relogin Period、Recurse Subdirectories、KeepSource File、Filter Match Name Only、Ignore Dotted Files、Minimum File Age的值的设置;即将属性Kerberos Relogin Period的值设置为4hours,将属性RecurseSubdirectories的值设置为ture,将属性Keep Source File的值设置为false,将属性Filter Match Name Only的值设置为ture,将属性Ignore Dotted Files的值设置为ture,将属性Minimum File Age的值设置为0sec。
所述GetFTP处理器对FTP数据库中的FTP数据和GetHDFS处理器对HDFS数据库中的HDFS数据的抽取节点的文件类型包括定长格式文件、列分隔符字段文件和“名称-值”对文件。
S2,数据转换,在GetFTP处理器和GetHDFS处理器的下游设置UpdateAttribute处理器,并对UpdateAttribute处理器进行属性配置;UpdateAttribute处理器将抽取到的FTP数据转换为HDFS数据,或者将抽取到的HDFS数据转换为FTP数据;
具体的,UpdateAttribute处理器将抽取到的FTP数据转换为HDFS数据或者将抽取到的HDFS数据转换为FTP数据之前,均需对抽取到的FTP数据或HDFS数据依次进行路由、过滤、分组和踢重处理,从而得到进行转换工作所需的数据。
如图4所示,对UpdateAttribute处理器进行属性配置包括对属性Store State的值的设置,属性Store State的值表示存储状态,将属性Store State的值设置为Do notstore state,表示以无状态形式提供存储流文件。
S3,数据加载,在UpdateAttribute处理器的下游分别设置PutHDFS处理器和PutFTP处理器,并分别对PutHDFS处理器和PutFTP处理器进行属性配置;PutHDFS处理器将步骤S2中转换得到的HDFS数据加载到HDFS数据库的目标文件夹中,PutFTP处理器将步骤S2中转换得到的FTP数据加载到FTP数据库的目标文件夹中。
具体的,如图5所示,对PutHDFS处理器进行属性配置包括对属性KerberosRelogin Period、Conflict Resolution Strategy的值的设置,即将属性KerberosRelogin Period的值设置为4hours,将属性Conflict Resolution Strategy的值设置为fail。
如图6所示,对PutFTP处理器进行属性配置包括对属性Port、Create Directory、Batch Size、Connection timeout、Data timeout、Conflict Resolution、Dot Rename、Transfer Mode的值的设置,即将属性Port的值设置为21,将属性Create Directory的值设置为false,将属性Batch Size的值设置为500,将属性Connection timeout的值设置为30sec,将属性Data timeout的值设置为30sec,将属性Conflict Resolution的值设置为NONE,将属性Dot Rename的值设置为ture,将属性Transfer Mode的值设置为Binary。
各处理器间连接、传输数据流时,所述GetFTP处理器、GetHDFS处理器与UpdateAttribute处理器之间,UpdateAttribute处理器与PutHDFS处理器、PutFTP处理器之间均使用任务队列作为数据缓冲区。
综上所述,本发明提供了一种FTP数据库与HDFS数据库自动互传数据的方法,其降低了数据转换的错误率,实现了数据的高效抽取与互传。