1. 程式人生 > >資料倉庫方案選型

資料倉庫方案選型

總體框架

通常採用三層體系結構:前端工具(頂層)-OLAP伺服器(中間層)-資料倉庫伺服器(底層)。

底層的資料倉庫伺服器通常是一個關係資料庫系統(各種表關聯的sql統計會更方便一些,非關係型資料庫目前在這方面還是有所區別)。
中間層OLAP伺服器,典型實現為ROLAP模型或MOLAP模型。
頂層為前端客戶端,用於資料分析和挖掘等(如趨勢分析、預測)。
當然現在很多成熟的BI工具都是集成了OLAP伺服器的,所以我們只是需要選擇ETL工具以及儲存方案和 視覺化BI方案即可。

ETL工具

1、KETL,由具有IBM和KPMG背景的Kinetic Networks公司開發,現在已經有三年多的產品應用歷史,成功應用於一些產品中,在點選流(ClickStream)分析應用中表現出色。KETL採用Plug-in的架構,使用Java開發。
2、KETTLE,為一個元資料驅動的ETL工具。已經加入Pentaho。
3、Clover ETL,為一個基於Java的ETL Framework,可以用來開發自己的ETL應用。 (開源)
4、Enhydra Octopus,為一個基於Java的ETL工具,使用JDBC來連線各種資料來源,易於使用和部署。曾有人應用於電信網路資源分析系統中。
5、Informatica Powercenter,oracle的ETL工具
6、Datastage,IBM的Datastage工具
7、oracle warehouse builder,oracle的ETL工具(OWB)
8、Oracle Data Integrator,oracle的ETL工具(ODI)
9、微軟DTS
10、Beeload(國內北京靈蜂縱橫)
11、微軟DTS
12、Talend
13、DataSprider
14、Spark自己寫抽取儲存
15、Octupus(開源)

對比

Pentaho Data Integration (Kettle)是Pentaho生態系統中預設的ETL工具。通過非常直觀的圖形化編輯器(Spoon),您可以定義以XML格式儲存的流程。在Kettle執行過程中,這些流程會以不同的方法編譯。用到的工具包括命令列工具(Pan),小型伺服器(Carte),資料庫儲存庫(repository)(Kitchen)或者直接使用IDE(Spoon)。
Talend Open Studio是 Talend 開發的ETL工具——Talend 是一家主營資料整合和資料管理解決方案的企業。Talend 採用使用者友好型,綜合性很強的IDE(類似於Pentaho Kettle 的 Spoon)來設計不同的流程。這些流程可以在IDE內部測試並編譯成Java 程式碼。您可以隨時檢視並編輯生成的Java程式碼,同時實現強大的控制力和靈活性。
兩者都非常優秀,都屬於使用者友好型的交叉平臺(基於Java的)工具。它們的主要差異在於Kettle 將 ELT 流程編譯為 XML 格式,然而Talend Open Studio 則生成 Java 程式碼。
易用性:
Talend:有 GUI 圖形介面但是以 Eclipse 的外掛方式提供。
Kettle:有非常容易使用的 GUI,出現問題可以到社群諮詢。
技術支援:
Talend:主要在美國
Kettle:在美國,歐洲(比利時,德國,法國,英國),亞洲(中國,日本,韓國)都可以找到相關技術支援人員。
部署:
Talend:建立 java 或perl 檔案,並通過作業系統排程工具來執行
Kettle:可以使用 job 作業方式或作業系統排程,來執行一個轉換檔案或作業檔案,也可以通過叢集的方式在多臺機器上部署。
速度:
Talend:需要手工調整,對特定資料來源有優化知識。
Kettle:比 Talend 快,不過也需要手工調整,對 Oracle 和 PostGre 等資料來源做了優化,同時也取決於轉換任務的設計。
資料質量:
Talend:在 GUI 裡有資料質量特性,可以手工寫 SQL 語句。
Kettle:在 GUI 裡有資料質量特性,可以手工寫 SQL 語句、java指令碼、正則表示式來完成資料清洗。
監控:
Talend:有監控和日誌工具
Kettle:有監控和日誌工具
連線性:
Talend:各種常用資料庫,檔案,web service。
Kettle:非常廣泛的資料庫,檔案,另外可以通過外掛擴充套件

Talend: 基於Eclipse,具有很好的擴充套件性、穩定性以及可定製化(可以自己開發eclipse外掛),並且服從Eclipse標準(如檔案目錄結構都是程式設計師熟悉的結構)。Talend具有很好的嵌入性,因為它生成的是Java程式碼,這些程式碼可以很好的和其他系統結合在一起,這就要求使用者會java。如果不會Java的話,Talend的缺點是學習曲線將會非常陡峭,但是如果會java的話,Talend將是一個絕佳的選擇。

Penthao: 它是一個老牌的工具,在2001年就釋出了第一個版本,Kettle是Penthao整個解決方案的一個元件,用來進行資料整合。它也是基於java開發的,但是它不要求使用者會java,將底層實現細節都隱藏了。這樣即使不會程式設計的使用者也可以輕易的上手,學習曲線非常平緩。它主要的缺點是,和talend相比,它的擴充套件性較差。由於它很難擴充套件,所以在社群中可用的元件就比較少;同時,由於它是直接解析存放在xml中的任務資訊,不直接生產java程式碼,使得它和現有的java開發的系統進行整合非常困難。

CloverETL: 它是在talend和penthao之後發展起來的工具,使用的人數沒有talend和penthao多,它主要的優點是,輕量級、容易嵌入、易於使用。但是它的功能遠沒有talend和kettle強大。

效能:從clover的官網上,有如下兩組效能測試報告(2009年),分別是1GB的檔案大小和10GB的檔案大小,從這兩組系統報告可以看出,clover的效能是最好的,Talend的效能次之,Penthao的效能最差。

從使用教程上來看,cloverETL百度查詢條數是5W4,Tanlend是32W,Kettle是900多W。 所以Kettle是資料比較豐富的,如果時間緊迫建議選擇Kettle。

儲存方案

方案1:採用傳統的關係型資料庫,或經過功能擴充套件的MPP(massively paralle processing)資料庫

傳統的關係型資料庫
oracle
mysql

大規模並行處理資料庫
Vertica
Teradata(商業)
Greenplum (開源)
據瞭解,Greenplum資料庫是業界最快和最高性價比的高階資料倉庫解決方案。
Greenplum是基於PostgreSQL的。於2015年開源。
傳說中四大行有3家在用,5大物流公司有4家在用,我還知道有國內航空業龍頭順利完成了Teradata到GP的遷移,去除人工後還省下了過千萬費用。

SequoiaDB
廣州巨杉軟體專注新一代大資料技術研發,是國內唯一的原廠企業級分散式資料庫公司。
SequoiaDB巨杉資料庫,是一款企業級分散式NewSQL資料庫,自主研發並擁有完全自主智慧財產權,沒有基於任何其他外部的開源資料庫原始碼。SequoiaDB支援標準SQL、事務操作、高併發、分散式、可擴充套件、與雙引擎儲存等特性,並已經作為商業化的資料庫產品開源。

方案2:Hadoop+Hive

這樣的組合:PG(TB級資料)、GP(百TB級資料)、Hadoop(PB級以上資料)的組合。

sql查詢引擎

Impala
Presto
Drill
Shark —>Spark sql

OLAP伺服器

Mondrian

報表展示工具

目前較為知名的開源報表工具有
JasperReports,一個優秀的Java報表工具,始於2001,現在JasperSoft公司持續開發和支援該工具。該工具類似於商業軟體Crystal Report,支援PDF、HTML、XLS、CSV和XML檔案輸出格式,現在是Java開發者最常用的報表工具。
OpenReports,提供基於web的靈活報表解決方案,通過瀏覽器自動生成動態PDF,XLS,HTMLCSV 和Chart報表,它是用Java開發的,使用JasperReports 作為報表引擎,利用到的開源技術有Hibernate,Veloctiy,Webwork。
JFreeReport,現在是Pentaho的一部分,它是一個優秀的用來生成報表的Java類庫。它為Java應用程式提供一個靈活的列印 功能並支援輸出到印表機和PDF, Excel, HTML和XHTML, PlainText, XML和CSV檔案中。
Eclipse BIRT,是Eclipse下面的一個企業智慧和報表 工具,能為J2EE的WEB應用程式建立漂亮醒目的PDF或者HTML格式的報表,它提供了核心的報表功能。
Jpivot(一般與Mondrian配合使用)

BI視覺化分析工具(BI一般都集成了OLAP伺服器和報表展示工具)

SpotView
FineBI(國內)
Z-Suite(國內)
SmartBI(國內)
Power-BI(國內)
QuickBI(國內阿里)
QlikView
SpagoBI(集成了Mondrain和JProvit)
Pentaho
Tableau
Openi

Openi是輕量級的。Openi的技術文件非常少,而且完全不支援中文,所以暫不採用。SpagoBI和Pentaho使用的開源技術很類似,技術都比較強大,屬於重量級的開發工具。但是SpagoBI中文支援不太好。Pentaho的中文文件多,國際化做的比較好。所以選用Pentaho作為研究的開源資料倉庫工具。

其他公司的選型方案

唯品會 Hadoop+Hive + Presto

阿里 oracle —> Greenplum —> Hadoop+Hive —>飛天

參考文獻

據瞭解,Greenplum資料庫是業界最快和最高性價比的高階資料倉庫解決方案。請問國內網際網路行業,現在有哪些公司在使用它呢?
https://www.zhihu.com/question/20249206