总体框架

通常采用三层体系结构:前端工具(顶层)-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

聊聊Greenplum的那些事

唯品会海量实时OLAP分析技术升级之路

阿里云大数据三次技术突围:Greenplum、Hadoop和飞天