一、大数据现状
在bigdata 1.0时代,以Hadoop为代表的大数据技术在企业数据仓库架构中起到的只是配角作用,只是完成数据批处理,处理好的数据还是放入传统的RDBMS中,由BI完成展示。这称为混合架构。对即时的数据流,提供了kafka+Storm的解决方案。既无法实现BI和bigdata的无缝对接,也无法进行流数据和大数据关联分析。这应该是一种不得已而为之的方案。
当很多用户刚开始对bigdata 1.0有所了解的时候,bigdata 2.0已经迅速到来。bigdata 2.0主要就是实现了SQL on bigdata,这样就不再需要混合架构,BI可以直接连接bigdata了。听起来很美好,Presto、Impala、Drill、Spark sql等,这些都是SQL on Bigdata方案。其中,以Presto最早,功能最全,支持SQL 2003。国内,最早使用和大力推广Presto的是京东。
无论是bigdata 1.0,还是2.0都没有解决大数据的包容性、敏捷性和易用性问题。
所谓包容性,是指大数据目前主要存的是结构化数据,对需要做语义解析的文本数据,无论是Hive,还是SQL on bigdata都无能为力。
所谓敏捷性,是指目前的大数据都太笨重了,用户哪管你是头大象还是一只豹子呢。就像如今的一台笔记本可能都比当年的小型机性能不知道强了多少倍。所以,敏捷性也是大数据发展的一个重要方向。
所谓易用性,这点大数据需要向商业软件学习的地方还太多。如目前SQL on bigdat还不支持函数和过程,还无法和BI无缝对接等。
这些可能都要在bigdata 3.0中才能解决。
二、大数据总体分析
目前的大数据总体来说说,都是先在某些点上突破了传统的极限,如数据库的存储极限,单一服务器的计算极限等,制约大数据发展的网络IO也将很快被突破。这些点突破还没有形成面突破,所以现在的大数据才存在以下问题:
1、架构复杂;
2、组件众多;
3、实施难度大
三、大数据3.0
我们认为大数据3.0要能带来如下优势:
1、统一性:结构化数据和非结构化数据不再割裂开来,统一存放;
2、敏捷性:系统具有自管理性,可以快速部署和实施;
3、易用性:可以使用成熟的BI和挖掘工具进行开发和无缝集成。
四、大数据3.0方案
在大数据3.0中,数据统一由Elasticsearch存储,SQL由Presto来实现,语义分析有Kibana实现。使用Elasticsearch具有如下好处:
1、集群管理简单,易扩展;
2、基于检索技术,可以提供语义分析和查询能力,满足性能要求;
使用Presto具有如下好处:
1、集群管理简单,易扩展;
2、强大的分布式SQL执行引擎;
3、支持SQL2003标准;
3、灵活的Connector开发能力;
当然,该方案也存在如下技术难点:
1、Elasticsearch for presto Connector开发;
2、Flume实现DB、file到ES的问题;
3、Presto JDBC驱动和BI的集成问题;
4、复杂业务逻辑的SQL实现等
五、进展及展望
1、Elasticsearch for presto Connector
经过2015年9月以来的跟踪和研究,在ES实现分布式SQL难度极大,Elastic官方提供的解决方案是Elasticsearch hadoop,终于发现了Presto Connector for Elasticsearch 开源版本:
https://github.com/albertocsm/presto/tree/master/presto-elasticsearch
进展:
2016.3.6 完成presto-elasticsearch编译打包
2、Presto Web GUI
https://github.com/airbnb/airpal
https://github.com/wyukawa/yanagishima
3、Java数据库客户端
Squirrel
https://sourceforge.NET/projects/squirrel-sql/files/latest/download?source=files
4、BI集成
因为Presto JDBC驱动的原因,和BI的集成还有问题。可以采用Prestogres,也可以采用PostgreSQL Data Forigen Warper实现。
5、复杂业务逻辑的SQL实现,这块需要实际项目验证。
可参考HPLSQL。HPL/SQL –Procedural SQL on Hadoop,并且在未来的Hive的版本(2.0)中,会将该模块集成进来。该解决方案不仅支持Hive,还支持在SparkSQL,其他NoSQL,甚至是RDBMS中使用类似于Oracle PL/SQL的功能,这将极大的方便数据开发者的工作,Hive中很多之前比较难实现的功能,现在可以很方便的实现,比如自定义变量、基于一个结果集的游标、循环等等。官方网站是:http://www.hplsql.org
我们选择了一条Presto+Elastic的大数据之路,前途也许荆棘丛生,但也许是柳暗花明。“不积跬步,无以至千里;不积小流,无以成江海”。让我们拭目以待!