本發(fā)明涉及大數(shù)據(jù)處理的技術(shù)領(lǐng)域,尤其涉及一種ETL數(shù)據(jù)處理的方法,以及ETL數(shù)據(jù)處理的系統(tǒng)。
背景技術(shù):
hdfs Hadoop Distributed File System或者Hadoop數(shù)據(jù)庫hbase
ETL是英文Extract-Transform-Load的縮寫,其用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。
中國專利申請?zhí)?014106820339,公開了一種ETL數(shù)據(jù)采集方法和裝置。但是,目前的技術(shù)只能適應(yīng)一讀一寫或者多讀一寫的ETL場景,還沒有出現(xiàn)支持多寫的技術(shù)方案。如果要在兩個異構(gòu)的存儲平臺上存放同一份ETL結(jié)果數(shù)據(jù),必須先在一個平臺上落地之后,再通過數(shù)據(jù)交換的工具同步到另外一個平臺,或者同時啟動兩個不同的ETL過程,效率比較低下。
而且,現(xiàn)有ETL系統(tǒng)一般與業(yè)務(wù)深度結(jié)合,只能在某一個場景下應(yīng)用,與業(yè)務(wù)耦合度非常高,導(dǎo)致整個系統(tǒng)不夠靈活,不容易被復(fù)用。
在收集業(yè)務(wù)系統(tǒng)日志或者接入外部數(shù)據(jù)源時,往往會面臨設(shè)計通用的高效ETL的問題,并且需要把處理后的數(shù)據(jù)落地到多個異構(gòu)的系統(tǒng)中,如何一次性解決數(shù)據(jù)同步的問題,需要在現(xiàn)有的ETL框架基礎(chǔ)上進一步創(chuàng)新設(shè)計。
技術(shù)實現(xiàn)要素:
為克服現(xiàn)有技術(shù)的缺陷,本發(fā)明要解決的技術(shù)問題是提供了一種ETL數(shù)據(jù)處理的方法,其能夠?qū)崿F(xiàn)從多個源頭讀取原始數(shù)據(jù),向多個異構(gòu)存儲系統(tǒng)同步數(shù)據(jù),可以大大提升ETL研發(fā)的速度和數(shù)據(jù)交換的效率。
本發(fā)明的技術(shù)方案是:這種ETL數(shù)據(jù)處理的方法,該方法包括以下步驟:
(1)配置ETL系統(tǒng)的讀插件,每一種讀插件對應(yīng)一個異構(gòu)的數(shù)據(jù)源,讀插件是開放的;
(2)配置ETL系統(tǒng)的寫插件,每一種寫插件對應(yīng)一個異構(gòu)的目標(biāo)存儲系統(tǒng),寫插件也是開放的;
(3)每一個ETL任務(wù)具有其對應(yīng)的配置文件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行。
本發(fā)明通過配置ETL系統(tǒng)的讀插件、寫插件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行,從而能夠?qū)崿F(xiàn)從多個源頭讀取原始數(shù)據(jù),向多個異構(gòu)存儲系統(tǒng)同步數(shù)據(jù),可以大大提升ETL研發(fā)的速度和數(shù)據(jù)交換的效率。
還提供了一種ETL數(shù)據(jù)處理的系統(tǒng),該系統(tǒng)包括:
第一配置模塊,其配置ETL系統(tǒng)的讀插件,每一種讀插件對應(yīng)一個異構(gòu)的數(shù)據(jù)源,讀插件是開放的;
第二配置模塊,其配置ETL系統(tǒng)的寫插件,每一種寫插件對應(yīng)一個異構(gòu)的目標(biāo)存儲系統(tǒng),寫插件也是開放的;
任務(wù)驅(qū)動器,其配置來執(zhí)行讀寫插件的加載、數(shù)據(jù)分發(fā)策略以及流程控制,每一個ETL任務(wù)都有其對應(yīng)的配置文件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行。
附圖說明
圖1所示為根據(jù)本發(fā)明的ETL數(shù)據(jù)處理的方法的流程圖。
具體實施方式
如圖1所示,這種ETL數(shù)據(jù)處理的方法,該方法包括以下步驟:
(1)配置ETL系統(tǒng)的讀插件,每一種讀插件對應(yīng)一個異構(gòu)的數(shù)據(jù)源,讀插件是開放的;
(2)配置ETL系統(tǒng)的寫插件,每一種寫插件對應(yīng)一個異構(gòu)的目標(biāo)存儲系統(tǒng),寫插件也是開放的;
(3)每一個ETL任務(wù)具有其對應(yīng)的配置文件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行。
本發(fā)明通過配置ETL系統(tǒng)的讀插件、寫插件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行,從而能夠?qū)崿F(xiàn)從多個源頭讀取原始數(shù)據(jù),向多個異構(gòu)存儲系統(tǒng)同步數(shù)據(jù),可以大大提升ETL研發(fā)的速度和數(shù)據(jù)交換的效率。
另外,所述步驟(1)中通過實現(xiàn)接口的方式來添加新的讀插件。
另外,所述步驟(2)中通過實現(xiàn)接口的方式來添加新的寫插件。
另外,在海量數(shù)據(jù)的情況下,本方法部署到storm集群中,由storm中的topology來負(fù)責(zé)數(shù)據(jù)的多讀和多寫,把數(shù)據(jù)落地到Hadoop分布式文件系統(tǒng)hdfs或者Hadoop數(shù)據(jù)庫hbase。
另外,在小數(shù)據(jù)量的場景下,在單機環(huán)境中執(zhí)行本方法的單機版本,把數(shù)據(jù)落地到Hadoop分布式文件系統(tǒng)hdfs或者Hadoop數(shù)據(jù)庫hbase。。
本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,包括上述實施例方法的各步驟,而所述的存儲介質(zhì)可以是:ROM/RAM、磁碟、光盤、存儲卡等。因此,與本發(fā)明的方法相對應(yīng)的,本發(fā)明還同時包括一種ETL數(shù)據(jù)處理的系統(tǒng),該系統(tǒng)通常以與方法各步驟相對應(yīng)的功能模塊的形式表示。使用該方法的系統(tǒng),該系統(tǒng)包括:
第一配置模塊,其配置ETL系統(tǒng)的讀插件,每一種讀插件對應(yīng)一個異構(gòu)的數(shù)據(jù)源,讀插件是開放的;
第二配置模塊,其配置ETL系統(tǒng)的寫插件,每一種寫插件對應(yīng)一個異構(gòu)的目標(biāo)存儲系統(tǒng),寫插件也是開放的;
任務(wù)驅(qū)動器,其配置來執(zhí)行讀寫插件的加載、數(shù)據(jù)分發(fā)策略以及流程控制,每一個ETL任務(wù)都有其對應(yīng)的配置文件,任務(wù)驅(qū)動器通過配置文件中的配置信息加載相關(guān)的讀寫插件,完成數(shù)據(jù)多讀和多寫的并發(fā)執(zhí)行。
另外,所述第一配置模塊中通過實現(xiàn)接口的方式來添加新的讀插件。
另外,所述第二配置模塊中通過實現(xiàn)接口的方式來添加新的寫插件。
另外,在海量數(shù)據(jù)的情況下,本系統(tǒng)部署到storm集群中,由storm中的topology來負(fù)責(zé)數(shù)據(jù)的多讀和多寫,把數(shù)據(jù)落地到Hadoop分布式文件系統(tǒng)hdfs或者Hadoop數(shù)據(jù)庫hbase。
另外,在小數(shù)據(jù)量的場景下,在單機環(huán)境中執(zhí)行本方法的單機版本,把數(shù)據(jù)落地到Hadoop分布式文件系統(tǒng)hdfs或者Hadoop數(shù)據(jù)庫hbase。
本發(fā)明的有益效果如下:
1.多寫特性,可以同時對多個異構(gòu)存儲系統(tǒng)發(fā)出寫請求,提升數(shù)據(jù)轉(zhuǎn)換效率。
2.讀寫模塊可插拔,一次研發(fā),多次復(fù)用。
3.ETL任務(wù)數(shù)據(jù)源與目標(biāo)存儲系統(tǒng)的可配置化特性。
以上所述,僅是本發(fā)明的較佳實施例,并非對本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實質(zhì)對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)方案的保護范圍。