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