内容简介:整理了一些相关的产品,包括:商业系统开源实现
整理了一些相关的产品,包括:
商业系统
- InfoBright
- Greenplum(已开源)、HP Vertica、TeraData、Palo、ExaData、RedShift、BigQuery(Dremel)
开源实现
- Impala、Presto、Spark SQL、Drill、Hawq
- Druid、Pinot
- Kylin
presto、druid、sparkSQL、kylin的对比
- presto和spark sql都是解决分布式查询问题,提供 SQL 查询能力,但数据加载不一定能保证实时;
- Druid是保证数据实时写入,但查询上不支持SQL,或者说目前只支持部分SQL,我个人觉得适合用于工业大数据,比如一堆传感器实时写数据的场景;
- Kylin是MOLAP,就是将数据先进行预聚合,然后把多维查询变成了key-value查询。基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速;
presto:facebook开源的一个 java 写的分布式数据查询框架,原生集成了Hive、Hbase和关系型数据库,Presto背后所使用的执行模式与Hive有根本的不同,它没有使用MapReduce,大部分场景下比hive快一个数量级,其中的关键是所有的处理都在内存中完成。
Druid:是一个实时处理时序数据的Olap数据库,因为它的索引首先按照时间分片,查询的时候也是按照时间线去路由索引。
spark SQL:基于spark平台上的一个olap框架,本质上也是基于DAG的MPP, 基本思路是增加机器来并行计算,从而提高查询速度。
kylin:核心是Cube,cube是一种预计算技术,基本思路是预先对数据作多维索引,查询时只扫描索引而不访问原始数据从而提速。
这几种框架各有优缺点,存在就是合理,如何选型个人看法如下:
从成熟度来讲:kylin > spark sql > Druid > presto
从超大数据的查询效率来看:Druid > kylin > presto > spark sql
从支持的数据源种类来讲:presto > spark sql > kylin > Druid
大数据查询目前来讲可以大体分为三类:
- 基于hbase预聚合的。适合相对固定的业务报表类需求。需要指定预聚合的指标,在数据接入的时候根据指定的指标进行聚合运算,只需要统计少量维度即可满足业务报表需求。比如Opentsdb,Kylin,Druid等
- 基于Parquet列式存储的,基本是完全基于内存的并行计算,Parquet系能降低存储空间,提高IO效率,以离线处理为主,很难提高数据写的实时性,超大表的join支持可能不够好。spark sql也算类似,但它在内存不足时可以spill disk来支持超大数据查询和join。比如Presto, Drill,Impala等
- 基于lucene外部索引的,比如ElasticSearch和Solr,能够满足的的查询场景远多于传统的数据库存储,但对于日志、行为类时序数据,所有的搜索请求都也必须搜索所有的分片,另外,对于聚合分析场景的支持也是软肋
欢迎订阅「K叔区块链」 - 专注于区块链技术学习
博客地址: http://www.jouypub.com
简书主页: https://www.jianshu.com/u/756c9c8ae984
segmentfault主页: https://segmentfault.com/blog/jouypub
腾讯云主页: https://cloud.tencent.com/developer/column/72548以上所述就是小编给大家介绍的《数据仓库的对比和选择》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Practical Django Projects, Second Edition
James Bennett / Apress / 2009 / 44.99
Build a django content management system, blog, and social networking site with James Bennett as he introduces version 1.1 of the popular Django framework. You’ll work through the development of ea......一起来看看 《Practical Django Projects, Second Edition》 这本书的介绍吧!