Pentaho中國社區(qū)創(chuàng)始人、國信達(dá)軟BI專家國信達(dá)軟BI技術(shù)顧問初建軍。在開源領(lǐng)域,開源BI產(chǎn)品是非常少的,只有兩個(gè):Pentaho;SPagoBI。
首先看一下我們大數(shù)據(jù)的整體方案,這是一個(gè)比較概念性的方案。這個(gè)方案最頂層是展現(xiàn)這層,這層包括報(bào)表。在展現(xiàn)層和數(shù)據(jù)存儲(chǔ)層之間可以建立一個(gè)業(yè)務(wù)模型,包括如何做數(shù)據(jù)挖掘需要做分類的模型,如果做多維分析要建立多維分析模型,如果做報(bào)表要建立業(yè)務(wù)模型,這是模型層。我們的工作主要在ETL這一層還有展現(xiàn)這層的工作。至于其他層,如存儲(chǔ)層可以用Hadoop等產(chǎn)品……我們今天的交流主要集中在ETL這一層。
什么是ETL?我們主要面對(duì)的是企業(yè)的業(yè)務(wù)部門,企業(yè)的領(lǐng)導(dǎo)和決策層他們需要看到數(shù)據(jù),他們只關(guān)心兩個(gè)事情,他們只關(guān)心能不能在規(guī)定時(shí)間內(nèi)看到數(shù)據(jù);看到的數(shù)據(jù)是不是完全正確的。我們?yōu)榱吮U嫌脩裟芸吹綌?shù)據(jù),首先利用模型會(huì)建立這樣一個(gè)模型,下面還有一個(gè)數(shù)據(jù)挖掘模型,預(yù)測(cè)分析模型。這是我們希望的數(shù)據(jù)模型,我們希望的數(shù)據(jù)是干凈、經(jīng)過處理的。我想大家很多是IT部門的CIO,我們面臨的問題是數(shù)據(jù)是不干凈的,存儲(chǔ)在很多地方,比如說數(shù)據(jù)有格式化的、非格式化的,日志文件、HTML,還有一些PDF文件、網(wǎng)頁、微博上的數(shù)據(jù),等等。中間的過程就是ETL過程。這是一個(gè)概念的圖,實(shí)際上還要建立主數(shù)據(jù)、業(yè)務(wù)流程。
打個(gè)比方,用戶想要干凈的水,很簡(jiǎn)單。如果我們是純凈水企業(yè),我們有著不同形態(tài)的水,可能是雨水、河水、地下水,我們的工作是要把這些自然形態(tài)的水變成用戶可以消費(fèi)、可以喝到的礦泉水,這個(gè)過程就是ETL過程,把水抽過來,做清洗、轉(zhuǎn)化,加工,最后裝到瓶子里。抽取、轉(zhuǎn)換、加載。這就是ETL的含義。
如何做ETL?從過去的幾年來看,我們做ETL大部分是通過寫代碼的方式來做,這種方式被慢慢的拋棄了。現(xiàn)在我們都要用流程圖的方式,畫一個(gè)流程圖來做ETL。市面上有很多商業(yè)軟件,比如Infomatica,Datastage,微軟的SSIS等,基本上和這個(gè)非常類似。我們今天講的開源的ETL 工具Kettle也是以畫圖的方式來解決ETL問題。
這是我們做ETL的三種方式的時(shí)間和成本的比較,進(jìn)行的比較。
第一種是手寫代碼,第二種是從上到下的曲線,這種是商業(yè)的ETL軟件,第三種是開源的,就是這條綠色的橫線,這三條曲線揭示的是隨著時(shí)間變化,ETL成本有什么變化。手寫代碼的這條曲線,開發(fā)人員用兩個(gè)月時(shí)間把數(shù)據(jù)搞定了,隨著需求不斷變化代碼要不斷更新,但是人員換了一個(gè),隨著時(shí)間推移,代碼維護(hù)越來越難,甚至不可維護(hù)。很多企業(yè)都是商業(yè)的ETL,有一些商業(yè)軟件最大問題就是成本太高,比如有的購買成本大概是100萬,每年還要交維護(hù)費(fèi)用,所以初期成本非常高,初期購買成本隨著時(shí)間推移也在均攤,成本會(huì)慢慢下來。而開源軟件初期成本不高,只是每年的維護(hù)費(fèi)用,所以基本是一條直線。
Pentaho Data Integration是一個(gè)開源軟件。它在國內(nèi)不是很流行,但是我們之前就一直在推廣。它的原名叫Kettle(水壺),現(xiàn)在叫PDI。Kettle可以獨(dú)立使用,也是PentahoBI平臺(tái)的一部分,它分為社區(qū)版和企業(yè)版,通過開源版吸引用戶,通過企業(yè)版為企業(yè)增加收入。我們這次交流的主要是它的社區(qū)版。
這是我們剛才打比方的一個(gè)再細(xì)化的流程,從水源到成品水,實(shí)際上我們建立數(shù)據(jù)倉庫中間還要經(jīng)過很多過程,第一部分是水源,Data Source,先放到Data Lake(s),然后到Data Mart(s)、Data Warehouse,接下來是Ad-Hoc。
首先看看怎么從不同數(shù)據(jù)源把數(shù)據(jù)取過來。這有一個(gè)特點(diǎn)是系統(tǒng)數(shù)據(jù)和原數(shù)據(jù)保持轉(zhuǎn)換,不會(huì)做任何轉(zhuǎn)化。這樣的話,如果前面數(shù)據(jù)報(bào)表出現(xiàn)問題,就可以追蹤溯源找到是哪條出現(xiàn)了問題。所以從Data Source到Data Lake(s)數(shù)據(jù)不發(fā)生變化,但是難點(diǎn)在于數(shù)據(jù)源有很多種。我們看看Kettle支持哪些數(shù)據(jù)源?這些都是Kettle數(shù)據(jù)源。表輸入可以支持30多種數(shù)據(jù)庫,甚至包括一些國產(chǎn)的數(shù)據(jù)庫等等,另外還支持PDF文件輸入、Excel輸入,企業(yè)80%數(shù)據(jù)源都可以通過這個(gè)方式處理數(shù)據(jù)。除了已經(jīng)設(shè)置好的數(shù)據(jù)源,如果說企業(yè)數(shù)據(jù)特別特殊,我們還有自定義格式。也沒有關(guān)系,Kettle有一個(gè)開放的接口,我們可以自己寫代碼來擴(kuò)展。比如說Oracle增量表輸入,這就是我們自己寫得插件。
現(xiàn)在我們?cè)倏匆幌拢谝粋(gè)就是數(shù)據(jù)源,而第二個(gè)階段從Data Lake(s)到Data Mart(s),這里最麻煩的就是數(shù)據(jù)清洗和排除,好幾個(gè)數(shù)據(jù)源過來如何保證它是正確的。難點(diǎn)是數(shù)據(jù)驗(yàn)證、排除,需要人工干預(yù),但是ETL可以幫助你建立企業(yè)的主數(shù)據(jù)。
我們看看Kettle怎么建立清洗流程。Kettle清洗流程非常簡(jiǎn)單,這是一個(gè)轉(zhuǎn)換的圖,從前面拖過來一個(gè)輸入以后,我們自己定義很多校驗(yàn)規(guī)則,定義數(shù)據(jù)長(zhǎng)度是否在規(guī)定的長(zhǎng)度之內(nèi),數(shù)據(jù)的大小取決范圍都可以設(shè)定好,設(shè)定好之后根據(jù)不同的錯(cuò)誤會(huì)分別到不同的地方再做處理,這是一個(gè)業(yè)務(wù)流程,它非常清晰、簡(jiǎn)單,維護(hù)起來會(huì)輕松很多。
再看第三個(gè)環(huán)節(jié),ETL第三個(gè)場(chǎng)景就是這里,要求快速開發(fā)。針對(duì)此我們推出“敏捷BI”的概念。大家聽說過“敏捷開發(fā)”,其實(shí)兩者是相似的,要求開發(fā)人員、業(yè)務(wù)人員合在一起開發(fā)。這在以前看來是難以想象的,業(yè)務(wù)人員也不會(huì)寫代碼,而現(xiàn)在有一個(gè)工具,通過這個(gè)工具,業(yè)務(wù)人員、開發(fā)人員可以通過這個(gè)工具來工作,這個(gè)工具可以畫ETL流程圖,也可以在這個(gè)工具里把畫好的ETL流程通過建模展現(xiàn)出來。同時(shí)業(yè)務(wù)人員可以看到這些數(shù)據(jù)是否是你需要的數(shù)據(jù),哪些屬性需要修改。從ETL到建模到報(bào)表進(jìn)行一站式開發(fā),可以減少很多迭代過程,效率比較高。
怎么支持大數(shù)據(jù)?有幾種方式:Hadoop、MongoDb Input、HBase Input等等。Kettle本身支持這些,包括數(shù)據(jù)庫的寫入、抽取數(shù)據(jù),除了這些還包括可以調(diào)用其他的作業(yè)(這是Hadoop自己帶的腳本工具,如Pig,Oozie 等,Kettle可以自己調(diào))。另外還有基于關(guān)系型數(shù)據(jù)庫,這種基于列存儲(chǔ)的關(guān)系數(shù)據(jù)庫在設(shè)計(jì)時(shí)考慮到查詢性能,所以也適合于大數(shù)據(jù)的場(chǎng)景。如Greenplum,Infobright等,我們也在幫助客戶做這些數(shù)據(jù)庫和Kettle的實(shí)施工作。
下面介紹一下我們的案例。Kettle在哪些地方應(yīng)用呢,也是大家比較關(guān)心的。
這九個(gè)地方跟我們有關(guān)系。首先看一下流程。聯(lián)想進(jìn)入的時(shí)間比較早,他們也比較注重開源,如何降低企業(yè)成本。我們2008年開始合作。當(dāng)時(shí)給聯(lián)想做了一個(gè)報(bào)表系統(tǒng),聯(lián)想在亞太區(qū)13個(gè)國家的門店、代理商每天銷售的計(jì)算機(jī),計(jì)算機(jī)銷售情況都會(huì)上報(bào)到聯(lián)想總部。Kettle從上報(bào)數(shù)據(jù)里生成報(bào)表,直接發(fā)送到郵箱里。同時(shí)里面加入回執(zhí)功能,統(tǒng)計(jì)一下誰看過這個(gè)報(bào)表。
第二個(gè)是是一家外企,PHOENIX。他們有一個(gè)數(shù)據(jù)中心在美國,希望把變化數(shù)據(jù)同步到世界的其他的數(shù)據(jù)中心,這也是一個(gè)比較早期的項(xiàng)目數(shù)據(jù)。當(dāng)時(shí)用的是Kettle3.0的版本。
剛開始大家用Kettle不太放心,擔(dān)心會(huì)擔(dān)心出問題。當(dāng)時(shí)給PHOEIIX做這個(gè)項(xiàng)目的時(shí)候,他們的經(jīng)理還問我,“我們是不是第一個(gè)國內(nèi)敢吃螃蟹的公司?”我說“不是,聯(lián)想已經(jīng)吃過了。”所以大家可以放心,我們可以幫助大家解決使用中遇到的問題。另外政府部門也在用,比如說公安部數(shù)據(jù)量比較大,比如人口信息查詢,駕駛員信息查詢。還有我們跟地方公安局有合作,這樣可以降低他們的成本。另外還有電商,比如58同城、淘寶都在用。電商開發(fā)能比較強(qiáng),我們跟他們做是為他們提供咨詢、培訓(xùn),幫助他們的開發(fā)人員快速掌握。其他的還有品眾互動(dòng)、四維圖新,這些是科技類的中小企業(yè),品眾是做網(wǎng)絡(luò)營銷的公司,幫助企業(yè)推廣自己的品牌。現(xiàn)在和我們合作做Hadoop,把數(shù)據(jù)從Hadoop抽出來,他們每天的數(shù)據(jù)量大概在一個(gè)T左右。還有四維圖新,它是做地理信息的,他們發(fā)布了一個(gè)手機(jī)應(yīng)用叫“就近兒”,類似“百度地圖”,可以查找到最近的優(yōu)惠券、最近的商鋪的信息,我們做后臺(tái)的數(shù)據(jù)處理,包括把數(shù)據(jù)從不同網(wǎng)站抓過來,把數(shù)據(jù)集合進(jìn)行排重,融合,最后進(jìn)行數(shù)據(jù)發(fā)布。
下面三家是比較大的國企,比如說中國聯(lián)通,他們有一個(gè)使用Kettle的項(xiàng)目規(guī)模比較大,現(xiàn)在正在進(jìn)行中,第一期已經(jīng)做完了,還比較順利。還有中國電信,電信跟我們的合作也比較長(zhǎng),幫助我們不斷的提高產(chǎn)品功能。這個(gè)產(chǎn)品是開源的,但是我們也可以往上提交代碼,也是其中的一個(gè)成員。另外就是國家電網(wǎng),通過第三方公司做項(xiàng)目,我們給第三方集成商做技術(shù)支持。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.guhuozai8.cn/
本文標(biāo)題:初建軍:基于大數(shù)據(jù)的BI應(yīng)用
本文網(wǎng)址:http://www.guhuozai8.cn/html/consultation/10820612401.html