本发明涉及集群数据库领域,特别是涉及一种支持多种数据源的集群数据库数据加载工具及方法。
背景技术:
集群数据库是使用多台普通服务器协同提供高性能的数据库服务,适用于海量数据的保存、查询和分析。因为其适用于大数据场合,因此需要配合高性能的数据加载工具,负责从各种数据源读取数据,加载到集群数据库之中。在现实的应用中,出于信息安全方面的考虑,数据源往往带有安全认证机制,并且有多种安全机制可以选择,而加载工具必须支持对应的认证机制,才能成功地从数据源读取数据文件。例如,HDFS数据源支持三种不同的认证机制:简单认证(Simple)、代理认证(Delegation)和协商认证(Negotiate),如果换成另一种数据源,如FTP数据源或者HTTP数据源,就会有与之相应的其他认证种类。
使用加载工具从要求进行安全认证的数据源读取数据,必须知道对应的认证方式,正确地配置加载工具,否则在读取数据时会缺少足够权限,造成加载失败。另一方面,在同一个数据源中,可能存在多种认证方式并存,同时发挥作用的情况,如果加载工具不能处理这种组合的认证方式,也会因为权限不够而造成读取数据失败。
技术实现要素:
本发明要解决的技术问题是提供一种认证快捷、认证方式多样的支持多种数据源的集群数据库数据加载工具及方法。
本发明支持多种数据源的集群数据库数据加载工具,其中,包括加载工具使用接口、加载任务管理模块和加载任务执行模块,加载工具使用接口的信号输出端与加载任务管理模块的信号接收端连接,加载任务管理模块的信号输出端与加载任务执行模块的信号接收端连接,加载任务执行模块包括认证策略管理模块和多个不同的认证模块,认证策略管理模块的控制信号输出端分别与各认证模块的控制端连接,加载任务执行模块的数据接收端与读数据模块的数据输出端连接,读数据模块的数据接收端与数据源访问模块的数据输出端连接,加载任务执行模块的数据输出端与写数据模块的数据接收端连接,写数据模块的数据输出端与数据库访问模块的数据接收端连接,
加载工具使用接口用于启动加载任务,并将各个任务的参数传递给加载任务管理模块;
加载任务管理模块用于保存、维护和调度所有接收到的加载任务;
加载任务执行模块用于负责具体加载任务的执行;
读数据模块用于提供统一的读取数据接口;
数据源访问模块用于从具体的数据源上读取数据;
写数据模块用于提供统一的写数据接口;
数据库访问模块用于将接收到的数据加载进集群数据库;
认证策略管理模块用于根据任务的参数确定使用哪种或者哪几种认证方式,对认证模块列表进行初始化,并根据认证模块列表选择相应的认证模块进行认证。
本发明支持多种数据源的集群数据库数据加载方法,其中,如下步骤:
步骤S1,将加载参数通过加载工具使用接口输入,并输出给加载任务管理模块;
步骤S2,加载任务管理模块根据接收到的参数,创建加载任务列表;
步骤S3,判断是否还存在未执行的加载任务,如果不存在未执行的加载任务,则结束;如果存在未执行的加载任务,将未执行的加载任务传输给加载任务执行模块,执行加载任务,执行加载任务后回传给步骤S2进行重新判定。
本发明支持多种数据源的集群数据库数据加载方法,其中所述步骤S3中加载任务又包括如下步骤:
步骤S1’,认证策略管理模块根据接收到的参数在各认证模块中选择相应的认证模块,并创建认证模块列表;
步骤S2’,读数据模块根据认证模块列表,并使用数据源访问模块进行读取数据;
步骤S3’,写数据模块使用数据库访问模块进行加载数据。
本发明支持多种数据源的集群数据库数据加载工具及方法与现有技术不同之处在于:本发明设置有读数据模块和数据源访问模块,能够支持多种数据源,如果数据源发生改变,只需要更换对应的数据源访问模块,方便快捷。加载任务执行模块每部设置有多种不同的认证模块,满足多种认证方式,如果认证方式发生改变,只需要创建对应的认证模块列表即可,而且还支持多种认证方式之间的任意组合,认证功能大大增强。设置有认证策略管理模块,根据认证需要创建认证模块列表,降低了各认证模块之间的耦合几率,当增加新的认证方式或者修改已有的认证模块时,无需更改加载工具的其他模块,实现了“插件式”的动态功能替换,降低了工作成本。
下面结合附图对本发明支持多种数据源的集群数据库数据加载工具及方法作进一步说明。
附图说明
图1为本发明支持多种数据源的集群数据库数据加载工具的结构示意图;
图2为本发明支持多种数据源的集群数据库数据加载方法的流程图;
图3为本发明支持多种数据源的集群数据库数据加载方法中一个加载任务的工作流程图。
具体实施方式
如图1所示,为本发明支持多种数据源的集群数据库数据加载工具的结构示意图,包括加载工具使用接口1、加载任务管理模块2和加载任务执行模块3。加载工具使用接口1的信号输出端与加载任务管理模块2的信号接收端连接,加载工具使用接口1用于启动加载任务,并将各个任务的参数传递给加载任务管理模块2,加载任务管理模块2用于保存、维护和调度所有接收到的加载任务。加载任务管理模块2的信号输出端与加载任务执行模块3的信号接收端连接,加载任务执行模块3内部又包括认证策略管理模块8和多个不同的认证模块,认证策略管理模块8的控制信号输出端分别与各认证模块的控制端连接,加载任务执行模块3用于负责一个具体加载任务的执行,而认证策略管理模块8用于根据任务的参数确定使用哪种或者哪几种认证方式,对认证模块列表进行初始化,认证策略管理模块8根据认证模块列表选择相应的认证模块进行认证。加载任务执行模块3的数据接收端与读数据模块4的数据输出端连接,读数据模块4的数据接收端与数据源访问模块6的数据输出端连接,加载任务执行模块3的数据输出端与写数据模块5的数据接收端连接,写数据模块5的数据输出端与数据库访问模块7的数据接收端连接,读数据模块4用于提供统一的读取数据接口;数据源访问模块6用于从具体的数据源上读取数据;写数据模块5用于提供统一的写数据接口;数据库访问模块7用于将接收到的数据加载进集群数据库。
如图2所示,为本发明支持多种数据源的集群数据库数据加载方法的流程图,包括如下步骤:
步骤S1,将加载参数通过加载工具使用接口1输入,并输出给加载任务管理模块2;
步骤S2,加载任务管理模块2根据接收到的参数,创建加载任务列表;
步骤S3,判断是否还存在未执行的加载任务,如果不存在未执行的加载任务,则结束;如果存在未执行的加载任务,将未执行的加载任务传输给加载任务执行模块3,执行加载任务,执行加载任务后回传给步骤S2进行重新判定。
如图3所示,为本发明支持多种数据源的集群数据库数据加载方法中一个加载任务的工作流程图,包括如下步骤:
步骤S1’,认证策略管理模块8根据接收到的参数在各认证模块中选择相应的认证模块,并创建认证模块列表;
步骤S2’,读数据模块4根据认证模块列表,并使用数据源访问模块6进行读取数据;
步骤S3’,写数据模块5使用数据库访问模块7进行加载数据;
步骤L4,完成加载任务。
实施例:本发明的一个实施例是包括三个加载任务的数据加载过程,包括了不同的数据源和认证方式:任务一、HDFS文件+简单认证;任务二、本地文件+不需要认证;任务三、HDFS文件+简单认证+HTTP代理认证。加载运行过程如下:
1.启动加载工具。
2.处理输入参数。
3.根据参数,加载工具知道有3个任务,分别为“任务一”,“任务二”和“任务三”。
4.开始执行“任务一”。
5.根据参数,确定使用HDFS简单认证方式,创建认证模块,并创建长度为1的认证模块列表(包含HDFS简单认证模块)。
6.使用认证模块列表、HDFS的数据源访问模块读取数据,进行加载。
7.完成“任务一”。
8.开始执行“任务二”。
9.根据参数,确定不使用认证,创建长度为0的认证模块列表。
10.使用认证模块列表、本地的数据源访问模块读取数据,进行加载。
11.完成“任务二”。
12.开始执行“任务三”。
13.根据参数,确定使用HDFS简单认证方式和HTTP代理认证方式,创建认证模块,创建长度为2的认证模块列表(包含HDFS简单认证方式模块、HTTP代理认证方式)。
14.使用认证模块列表、HDFS的数据源访问模块读取数据,进行加载。
15.完成“任务三”。
16.所有加载任务已完成,加载工具退出。
本发明支持多种数据源的集群数据库数据加载工具及方法,设置有读数据模块4和数据源访问模块6,能够支持多种数据源,如果数据源发生改变,只需要更换对应的数据源访问模块,方便快捷。加载任务执行模块3每部设置有多种不同的认证模块,满足多种认证方式,如果认证方式发生改变,只需要创建对应的认证模块列表即可,而且还支持多种认证方式之间的任意组合,认证功能大大增强。设置有认证策略管理模块8,根据认证需要创建认证模块列表,降低了各认证模块之间的耦合几率,当增加新的认证方式或者修改已有的认证模块时,无需更改加载工具的其他模块,实现了“插件式”的动态功能替换,降低了工作成本。本发明认证快捷、认证方式多样,与现有技术相比具有明显的优点。
以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。