本發(fā)明涉及集群數(shù)據庫領域,特別是涉及一種支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具及方法。
背景技術:
集群數(shù)據庫是使用多臺普通服務器協(xié)同提供高性能的數(shù)據庫服務,適用于海量數(shù)據的保存、查詢和分析。因為其適用于大數(shù)據場合,因此需要配合高性能的數(shù)據加載工具,負責從各種數(shù)據源讀取數(shù)據,加載到集群數(shù)據庫之中。在現(xiàn)實的應用中,出于信息安全方面的考慮,數(shù)據源往往帶有安全認證機制,并且有多種安全機制可以選擇,而加載工具必須支持對應的認證機制,才能成功地從數(shù)據源讀取數(shù)據文件。例如,HDFS數(shù)據源支持三種不同的認證機制:簡單認證(Simple)、代理認證(Delegation)和協(xié)商認證(Negotiate),如果換成另一種數(shù)據源,如FTP數(shù)據源或者HTTP數(shù)據源,就會有與之相應的其他認證種類。
使用加載工具從要求進行安全認證的數(shù)據源讀取數(shù)據,必須知道對應的認證方式,正確地配置加載工具,否則在讀取數(shù)據時會缺少足夠權限,造成加載失敗。另一方面,在同一個數(shù)據源中,可能存在多種認證方式并存,同時發(fā)揮作用的情況,如果加載工具不能處理這種組合的認證方式,也會因為權限不夠而造成讀取數(shù)據失敗。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是提供一種認證快捷、認證方式多樣的支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具及方法。
本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具,其中,包括加載工具使用接口、加載任務管理模塊和加載任務執(zhí)行模塊,加載工具使用接口的信號輸出端與加載任務管理模塊的信號接收端連接,加載任務管理模塊的信號輸出端與加載任務執(zhí)行模塊的信號接收端連接,加載任務執(zhí)行模塊包括認證策略管理模塊和多個不同的認證模塊,認證策略管理模塊的控制信號輸出端分別與各認證模塊的控制端連接,加載任務執(zhí)行模塊的數(shù)據接收端與讀數(shù)據模塊的數(shù)據輸出端連接,讀數(shù)據模塊的數(shù)據接收端與數(shù)據源訪問模塊的數(shù)據輸出端連接,加載任務執(zhí)行模塊的數(shù)據輸出端與寫數(shù)據模塊的數(shù)據接收端連接,寫數(shù)據模塊的數(shù)據輸出端與數(shù)據庫訪問模塊的數(shù)據接收端連接,
加載工具使用接口用于啟動加載任務,并將各個任務的參數(shù)傳遞給加載任務管理模塊;
加載任務管理模塊用于保存、維護和調度所有接收到的加載任務;
加載任務執(zhí)行模塊用于負責具體加載任務的執(zhí)行;
讀數(shù)據模塊用于提供統(tǒng)一的讀取數(shù)據接口;
數(shù)據源訪問模塊用于從具體的數(shù)據源上讀取數(shù)據;
寫數(shù)據模塊用于提供統(tǒng)一的寫數(shù)據接口;
數(shù)據庫訪問模塊用于將接收到的數(shù)據加載進集群數(shù)據庫;
認證策略管理模塊用于根據任務的參數(shù)確定使用哪種或者哪幾種認證方式,對認證模塊列表進行初始化,并根據認證模塊列表選擇相應的認證模塊進行認證。
本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法,其中,如下步驟:
步驟S1,將加載參數(shù)通過加載工具使用接口輸入,并輸出給加載任務管理模塊;
步驟S2,加載任務管理模塊根據接收到的參數(shù),創(chuàng)建加載任務列表;
步驟S3,判斷是否還存在未執(zhí)行的加載任務,如果不存在未執(zhí)行的加載任務,則結束;如果存在未執(zhí)行的加載任務,將未執(zhí)行的加載任務傳輸給加載任務執(zhí)行模塊,執(zhí)行加載任務,執(zhí)行加載任務后回傳給步驟S2進行重新判定。
本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法,其中所述步驟S3中加載任務又包括如下步驟:
步驟S1’,認證策略管理模塊根據接收到的參數(shù)在各認證模塊中選擇相應的認證模塊,并創(chuàng)建認證模塊列表;
步驟S2’,讀數(shù)據模塊根據認證模塊列表,并使用數(shù)據源訪問模塊進行讀取數(shù)據;
步驟S3’,寫數(shù)據模塊使用數(shù)據庫訪問模塊進行加載數(shù)據。
本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具及方法與現(xiàn)有技術不同之處在于:本發(fā)明設置有讀數(shù)據模塊和數(shù)據源訪問模塊,能夠支持多種數(shù)據源,如果數(shù)據源發(fā)生改變,只需要更換對應的數(shù)據源訪問模塊,方便快捷。加載任務執(zhí)行模塊每部設置有多種不同的認證模塊,滿足多種認證方式,如果認證方式發(fā)生改變,只需要創(chuàng)建對應的認證模塊列表即可,而且還支持多種認證方式之間的任意組合,認證功能大大增強。設置有認證策略管理模塊,根據認證需要創(chuàng)建認證模塊列表,降低了各認證模塊之間的耦合幾率,當增加新的認證方式或者修改已有的認證模塊時,無需更改加載工具的其他模塊,實現(xiàn)了“插件式”的動態(tài)功能替換,降低了工作成本。
下面結合附圖對本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具及方法作進一步說明。
附圖說明
圖1為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具的結構示意圖;
圖2為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法的流程圖;
圖3為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法中一個加載任務的工作流程圖。
具體實施方式
如圖1所示,為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具的結構示意圖,包括加載工具使用接口1、加載任務管理模塊2和加載任務執(zhí)行模塊3。加載工具使用接口1的信號輸出端與加載任務管理模塊2的信號接收端連接,加載工具使用接口1用于啟動加載任務,并將各個任務的參數(shù)傳遞給加載任務管理模塊2,加載任務管理模塊2用于保存、維護和調度所有接收到的加載任務。加載任務管理模塊2的信號輸出端與加載任務執(zhí)行模塊3的信號接收端連接,加載任務執(zhí)行模塊3內部又包括認證策略管理模塊8和多個不同的認證模塊,認證策略管理模塊8的控制信號輸出端分別與各認證模塊的控制端連接,加載任務執(zhí)行模塊3用于負責一個具體加載任務的執(zhí)行,而認證策略管理模塊8用于根據任務的參數(shù)確定使用哪種或者哪幾種認證方式,對認證模塊列表進行初始化,認證策略管理模塊8根據認證模塊列表選擇相應的認證模塊進行認證。加載任務執(zhí)行模塊3的數(shù)據接收端與讀數(shù)據模塊4的數(shù)據輸出端連接,讀數(shù)據模塊4的數(shù)據接收端與數(shù)據源訪問模塊6的數(shù)據輸出端連接,加載任務執(zhí)行模塊3的數(shù)據輸出端與寫數(shù)據模塊5的數(shù)據接收端連接,寫數(shù)據模塊5的數(shù)據輸出端與數(shù)據庫訪問模塊7的數(shù)據接收端連接,讀數(shù)據模塊4用于提供統(tǒng)一的讀取數(shù)據接口;數(shù)據源訪問模塊6用于從具體的數(shù)據源上讀取數(shù)據;寫數(shù)據模塊5用于提供統(tǒng)一的寫數(shù)據接口;數(shù)據庫訪問模塊7用于將接收到的數(shù)據加載進集群數(shù)據庫。
如圖2所示,為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法的流程圖,包括如下步驟:
步驟S1,將加載參數(shù)通過加載工具使用接口1輸入,并輸出給加載任務管理模塊2;
步驟S2,加載任務管理模塊2根據接收到的參數(shù),創(chuàng)建加載任務列表;
步驟S3,判斷是否還存在未執(zhí)行的加載任務,如果不存在未執(zhí)行的加載任務,則結束;如果存在未執(zhí)行的加載任務,將未執(zhí)行的加載任務傳輸給加載任務執(zhí)行模塊3,執(zhí)行加載任務,執(zhí)行加載任務后回傳給步驟S2進行重新判定。
如圖3所示,為本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載方法中一個加載任務的工作流程圖,包括如下步驟:
步驟S1’,認證策略管理模塊8根據接收到的參數(shù)在各認證模塊中選擇相應的認證模塊,并創(chuàng)建認證模塊列表;
步驟S2’,讀數(shù)據模塊4根據認證模塊列表,并使用數(shù)據源訪問模塊6進行讀取數(shù)據;
步驟S3’,寫數(shù)據模塊5使用數(shù)據庫訪問模塊7進行加載數(shù)據;
步驟L4,完成加載任務。
實施例:本發(fā)明的一個實施例是包括三個加載任務的數(shù)據加載過程,包括了不同的數(shù)據源和認證方式:任務一、HDFS文件+簡單認證;任務二、本地文件+不需要認證;任務三、HDFS文件+簡單認證+HTTP代理認證。加載運行過程如下:
1.啟動加載工具。
2.處理輸入參數(shù)。
3.根據參數(shù),加載工具知道有3個任務,分別為“任務一”,“任務二”和“任務三”。
4.開始執(zhí)行“任務一”。
5.根據參數(shù),確定使用HDFS簡單認證方式,創(chuàng)建認證模塊,并創(chuàng)建長度為1的認證模塊列表(包含HDFS簡單認證模塊)。
6.使用認證模塊列表、HDFS的數(shù)據源訪問模塊讀取數(shù)據,進行加載。
7.完成“任務一”。
8.開始執(zhí)行“任務二”。
9.根據參數(shù),確定不使用認證,創(chuàng)建長度為0的認證模塊列表。
10.使用認證模塊列表、本地的數(shù)據源訪問模塊讀取數(shù)據,進行加載。
11.完成“任務二”。
12.開始執(zhí)行“任務三”。
13.根據參數(shù),確定使用HDFS簡單認證方式和HTTP代理認證方式,創(chuàng)建認證模塊,創(chuàng)建長度為2的認證模塊列表(包含HDFS簡單認證方式模塊、HTTP代理認證方式)。
14.使用認證模塊列表、HDFS的數(shù)據源訪問模塊讀取數(shù)據,進行加載。
15.完成“任務三”。
16.所有加載任務已完成,加載工具退出。
本發(fā)明支持多種數(shù)據源的集群數(shù)據庫數(shù)據加載工具及方法,設置有讀數(shù)據模塊4和數(shù)據源訪問模塊6,能夠支持多種數(shù)據源,如果數(shù)據源發(fā)生改變,只需要更換對應的數(shù)據源訪問模塊,方便快捷。加載任務執(zhí)行模塊3每部設置有多種不同的認證模塊,滿足多種認證方式,如果認證方式發(fā)生改變,只需要創(chuàng)建對應的認證模塊列表即可,而且還支持多種認證方式之間的任意組合,認證功能大大增強。設置有認證策略管理模塊8,根據認證需要創(chuàng)建認證模塊列表,降低了各認證模塊之間的耦合幾率,當增加新的認證方式或者修改已有的認證模塊時,無需更改加載工具的其他模塊,實現(xiàn)了“插件式”的動態(tài)功能替換,降低了工作成本。本發(fā)明認證快捷、認證方式多樣,與現(xiàn)有技術相比具有明顯的優(yōu)點。
以上所述的實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設計精神的前提下,本領域普通技術人員對本發(fā)明的技術方案作出的各種變形和改進,均應落入本發(fā)明權利要求書確定的保護范圍內。