本發(fā)明涉及了一種hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法及系統(tǒng)。
背景技術(shù):
隨著企業(yè)要存儲和分析處理的數(shù)據(jù)量越來越大,hadoop越來越受到重視,hadoop是apache軟件基金會的開源項目。hadoop實現(xiàn)了一個分布式文件系統(tǒng)(hadoopdistributedfilesystem),簡稱hdfs。由于hadoop在可伸縮性、健壯性、計算性能和成本上具有無可替代的優(yōu)勢,已然成為當(dāng)前主流的大數(shù)據(jù)存儲和分析平臺。
目前應(yīng)用于大數(shù)據(jù)分析的基礎(chǔ)數(shù)據(jù)通常是保存于如mysql、sqlsever、db2等關(guān)系型數(shù)據(jù)庫中,由于對數(shù)據(jù)分析和處理的需要,需要將這些基礎(chǔ)數(shù)據(jù)進行篩選并導(dǎo)入至hadoop的hive數(shù)據(jù)倉庫中,通過hadoop平臺的運算處理能力實現(xiàn)針對大數(shù)據(jù)的數(shù)據(jù)分析。sqoop是一款開源工具,利用sqoop我們能夠在hadoop生態(tài)圈中建立一個供其他服務(wù)器調(diào)用的接口,通過調(diào)用該接口可以實現(xiàn)將關(guān)系型數(shù)據(jù)庫中指定的數(shù)據(jù)導(dǎo)入到hadoop的hdfs中,hadoop最終再將這些hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。由于用于分析的數(shù)據(jù)經(jīng)常性會變動,每次進行數(shù)據(jù)更新時,都需要采用人工敲入代碼的方式來調(diào)用數(shù)據(jù)傳輸接口,面對復(fù)雜的傳輸和處理流程,要求工作人員必須定時定期操作,因此費時費力。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的不足,本發(fā)明提供了一種hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法及系統(tǒng),解決了現(xiàn)有技術(shù)中每次將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)傳輸至hadoop的數(shù)據(jù)倉庫時需要人工操作的不便之處。
為實現(xiàn)上述目的,本發(fā)明提供了一種hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法,包括:
步驟一:搭載hadoop數(shù)據(jù)倉庫的服務(wù)器c預(yù)先配置用于從搭載關(guān)系型數(shù)據(jù)庫的服務(wù)器a中獲取數(shù)據(jù)的數(shù)據(jù)傳輸接口;
步驟二:搭載作業(yè)調(diào)度器的服務(wù)器b預(yù)先配置用于調(diào)用所述數(shù)據(jù)傳輸接口的調(diào)用命令以及執(zhí)行該調(diào)用命令的執(zhí)行周期;
步驟三:服務(wù)器b按照執(zhí)行周期定期執(zhí)行調(diào)用命令;
步驟四:服務(wù)器c從服務(wù)器a中獲取數(shù)據(jù)并生成hdfs分布式文件系統(tǒng)文件;
步驟五:服務(wù)器c將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
作為本發(fā)明的進一步改進,
所述步驟一具體包括:
服務(wù)器c預(yù)先配置數(shù)據(jù)傳輸接口的接口參數(shù),該接口參數(shù)包括用于和服務(wù)器a建立連接關(guān)系的服務(wù)器a的數(shù)據(jù)庫地址、數(shù)據(jù)庫用戶名和密碼、服務(wù)器c的主機名以及用戶名和密碼,以及用于獲取指定數(shù)據(jù)的數(shù)據(jù)篩選條件、表名以及列名。
作為本發(fā)明的進一步改進,
所述步驟三和步驟四之間還包括:
步驟a:服務(wù)器b監(jiān)控服務(wù)器a中hdfs文件的生成情況;
所述步驟四和步驟五之間還包括:
步驟b:服務(wù)器b在監(jiān)控到服務(wù)器a中hdfs文件生成完畢后向服務(wù)器c發(fā)送將hdfs數(shù)據(jù)導(dǎo)入至hive數(shù)據(jù)倉庫的指令。
本發(fā)明還提供了一種hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng),包括:
服務(wù)器a,用于搭載存儲基礎(chǔ)數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫;
服務(wù)器b,用于搭載作業(yè)調(diào)度器,用于預(yù)先配置調(diào)用所述數(shù)據(jù)傳輸接口的調(diào)用命令,以及按照執(zhí)行周期定期執(zhí)行調(diào)用命令;
服務(wù)器c,用于搭載hadoop數(shù)據(jù)倉庫,用于預(yù)先配置從搭載關(guān)系型數(shù)據(jù)庫的服務(wù)器a中獲取數(shù)據(jù)的數(shù)據(jù)傳輸接口,用于從服務(wù)器a中獲取數(shù)據(jù)并生成hdfs文件,以及將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
作為本發(fā)明的進一步改進,
所述服務(wù)器b包括:
調(diào)用命令配置模塊,用于輸入數(shù)據(jù)傳輸接口的調(diào)用命令;
執(zhí)行周期配置模塊,用于配置執(zhí)行調(diào)用指令的執(zhí)行周期。
作為本發(fā)明的進一步改進,
所述服務(wù)器c包括:
數(shù)據(jù)傳輸接口配置模塊,用于配置數(shù)據(jù)傳輸接口;
hdfs文件生成模塊,用于將獲取的數(shù)據(jù)轉(zhuǎn)化為hdfs文件;
hive數(shù)據(jù)倉庫導(dǎo)入模塊,用于將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
作為本發(fā)明的進一步改進,
所述調(diào)用命令配置模塊包括:
接口參數(shù)配置單元:用于配置數(shù)據(jù)傳輸接口的接口參數(shù),接口參數(shù)包括數(shù)據(jù)篩選條件、服務(wù)器a的數(shù)據(jù)庫地址、表名以及列名。
作為本發(fā)明的進一步改進,
所述服務(wù)器b還包括:
hdfs文件監(jiān)控模塊:用于監(jiān)控服務(wù)器c中hdfs文件的生成情況;
指令發(fā)送模塊:用于向服務(wù)器c發(fā)送將hdfs數(shù)據(jù)導(dǎo)入至hive數(shù)據(jù)倉庫的指令。
本發(fā)明的有益效果是:本申請技術(shù)方案提供的hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法及系統(tǒng),應(yīng)用于關(guān)系型數(shù)據(jù)庫到分布式系統(tǒng)架構(gòu)中hive數(shù)據(jù)倉庫的數(shù)據(jù)導(dǎo)入,實現(xiàn)了關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)能夠定時定期地導(dǎo)入至hadoop的hive數(shù)據(jù)倉庫中。與傳統(tǒng)技術(shù)相比,面對復(fù)雜的傳輸和處理流程不需要人工進行操作,節(jié)省了工作人員的時間,而且不容易出錯。
附圖說明
圖1為本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法實施例的流程圖;
圖2為本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng)實施例的結(jié)構(gòu)框圖;
圖3為本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng)實施例中服務(wù)器b的結(jié)構(gòu)框圖;
圖4為本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng)實施例中服務(wù)器c的結(jié)構(gòu)框圖;
圖5為本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng)實施例中調(diào)用命令配置模塊的結(jié)構(gòu)框圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明進一步詳細(xì)說明。
本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)方法的實施例,如圖1所示,包括:
步驟一100:搭載hadoop數(shù)據(jù)倉庫的服務(wù)器c預(yù)先配置用于從搭載關(guān)系型數(shù)據(jù)庫的服務(wù)器a中獲取數(shù)據(jù)的數(shù)據(jù)傳輸接口;
步驟二101:搭載作業(yè)調(diào)度器的服務(wù)器b預(yù)先配置用于調(diào)用所述數(shù)據(jù)傳輸接口的調(diào)用命令以及執(zhí)行該調(diào)用命令的執(zhí)行周期;
步驟三102:服務(wù)器b按照執(zhí)行周期定期執(zhí)行調(diào)用命令;
步驟四103:服務(wù)器c從服務(wù)器a中獲取數(shù)據(jù)并生成hdfs文件;
步驟五104:服務(wù)器c將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
在本實施例中,所述步驟一具體包括:
服務(wù)器c預(yù)先配置數(shù)據(jù)傳輸接口的接口參數(shù),該接口參數(shù)包括用于和服務(wù)器a建立連接關(guān)系的服務(wù)器a的數(shù)據(jù)庫地址、數(shù)據(jù)庫用戶名和密碼、服務(wù)器c的主機名以及用戶名和密碼,以及用于獲取指定數(shù)據(jù)的數(shù)據(jù)篩選條件、表名以及列名。
服務(wù)器b通過調(diào)用服務(wù)器a中預(yù)先配置的數(shù)據(jù)傳輸接口能夠?qū)崿F(xiàn)服務(wù)器a和服務(wù)器c之間建立連接關(guān)系,并且服務(wù)器c從服務(wù)器a中獲取指定的數(shù)據(jù)。
在本實施例中,
所述步驟三102和步驟四103之間還包括:
步驟a110:服務(wù)器b監(jiān)控服務(wù)器a中hdfs文件的生成情況;
服務(wù)器c在從服務(wù)器a中獲取數(shù)據(jù)時,會生成相應(yīng)的hdfs文件,服務(wù)器b定時通過hadoopfs-get<hdfsfile><localfileordir>語句獲取此hdfs文件,以此判斷數(shù)據(jù)獲取是否完成。
所述步驟四103和步驟五104之間還包括:
步驟b120:服務(wù)器b在監(jiān)控到服務(wù)器a中hdfs文件生成完畢后向服務(wù)器c發(fā)送將hdfs數(shù)據(jù)導(dǎo)入至hive數(shù)據(jù)倉庫的指令。
在此過程中,服務(wù)器b向服務(wù)器c發(fā)送hive接口的load指令,服務(wù)器c在收到服務(wù)器b發(fā)送的指令后將hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
本發(fā)明hadoop數(shù)據(jù)倉庫的自動導(dǎo)入數(shù)據(jù)系統(tǒng)的實施例如圖2-5所示,包括:
服務(wù)器a200,用于搭載存儲基礎(chǔ)數(shù)據(jù)的關(guān)系型數(shù)據(jù)庫;
服務(wù)器b210,用于搭載作業(yè)調(diào)度器,用于預(yù)先配置調(diào)用所述數(shù)據(jù)傳輸接口的調(diào)用命令,以及按照執(zhí)行周期定期執(zhí)行調(diào)用命令;
服務(wù)器c220,用于搭載hadoop數(shù)據(jù)倉庫,用于預(yù)先配置從搭載關(guān)系型數(shù)據(jù)庫的服務(wù)器a200中獲取數(shù)據(jù)的數(shù)據(jù)傳輸接口,用于從服務(wù)器a200中獲取數(shù)據(jù)并生成hdfs文件,以及將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
在本實施例中,所述服務(wù)器b210包括:
調(diào)用命令配置模塊211,用于輸入數(shù)據(jù)傳輸接口的調(diào)用命令;
執(zhí)行周期配置模塊212,用于配置執(zhí)行調(diào)用指令的執(zhí)行周期。
在本實施例中,所述服務(wù)器c220包括:
數(shù)據(jù)傳輸接口配置模塊221,用于配置數(shù)據(jù)傳輸接口;
hdfs文件生成模塊222,用于將獲取的數(shù)據(jù)轉(zhuǎn)化為hdfs文件;
hive數(shù)據(jù)倉庫導(dǎo)入模塊223,用于將生成的hdfs文件導(dǎo)入至hive數(shù)據(jù)倉庫中。
在本實施例中,所述調(diào)用命令配置模塊211包括:
接口參數(shù)配置單元211a:用于配置數(shù)據(jù)傳輸接口的接口參數(shù),接口參數(shù)包括數(shù)據(jù)篩選條件、服務(wù)器a200的數(shù)據(jù)庫地址、表名以及列名。
作為本發(fā)明的進一步改進,
所述服務(wù)器b210還包括:
hdfs文件監(jiān)控模塊213:用于監(jiān)控服務(wù)器c220中hdfs文件的生成情況;
指令發(fā)送模塊214:用于向服務(wù)器c220發(fā)送將hdfs數(shù)據(jù)導(dǎo)入至hive數(shù)據(jù)倉庫的指令。
本發(fā)明應(yīng)用于關(guān)系型數(shù)據(jù)庫到分布式系統(tǒng)架構(gòu)中hive數(shù)據(jù)倉庫的數(shù)據(jù)導(dǎo)入,實現(xiàn)了關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)能夠定時定期地導(dǎo)入至hadoop的hive數(shù)據(jù)倉庫中。與傳統(tǒng)技術(shù)相比,面對復(fù)雜的傳輸和處理流程不需要人工進行操作,節(jié)省了工作人員的時間,而且不容易出錯。
需要說明的是,本發(fā)明中所述的服務(wù)器b和服務(wù)器c可以是同一服務(wù)器,當(dāng)服務(wù)器b和服務(wù)器c為同一服務(wù)器時,該服務(wù)器同時搭載有hadoop集群和作業(yè)調(diào)度器,通過在該服務(wù)器端進行相應(yīng)的配置,同樣能夠?qū)崿F(xiàn)本發(fā)明所能達(dá)到的效果。
以上實施例,只是本發(fā)明優(yōu)選地具體實施例的一種,本領(lǐng)域技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進行的通常變化和替換都包含在本發(fā)明的保護范圍內(nèi)。