OLAP引擎学习记录
OLAP一般分为即席查询和固化查询
即席查询:通过手写sql完成一些临时的数据分析需求,对查询时间没有严格要求
固化查询:指的是一些固化下来的取数、看数需求,这类的sql固定模式,对响应时间有较高要
主流的OLAP引擎主要有下面三点
MPP架构系统(Presto/Impala/SparkSQL/Drill等):主要还是从查询引擎入手,使用分布式查询引擎,而不是使用hive+mapreduce架构,提高查询效率
搜索引擎架构的系统(es,solr等):入库时将数据转换为倒排索引,采用Scatter-Gather计算模型,牺牲了灵活性换取很好的性能,在搜索类查询上能做到亚秒级响应
预计算系统(Druid/Kylin等):入库时对数据进行预聚合,进一步牺牲灵活性换取性能,以实现对超大数据集的秒级响应
impala
impala是Cloudera开发开源的,查询存储在HDFS和HBase中的数据。
同Hive一样,也是一种SQL on Hadoop解决方案。但Impala抛弃了MapReduce,使用更类似于传统的MPP数据库技术来提高查询速度。
- impala可以直接查询hdfs或hbase上的数据,可以与现有的存储无缝对接。
- impala需要单独安装,公司内paas主推。需要与现场确认。
- impala提供jdbc接口和sql执行引擎,可以与现有系统集成
Presto
presto是Facebook开源的大数据查询引擎,为了解决hive查询慢产生。使用java编写,数据全部在内存中处理。
学习:https://prestodb.io/docs/current/index.html
- 原生集成了Hive、Hbase和关系型数据库。
- 需要与现场确认是否能提供
- 提供jdbc接口和sql执行引擎,可以与现有系统集成
参考文档
- Apache Kylin在美团点评的应用(https://zhuanlan.zhihu.com/p/27461561)
- presto、druid、sparkSQL、kylin的对比分析(https://www.zhihu.com/question/41541395)
- Druid(准)实时分析统计数据库——列存储+高效压缩(https://www.cnblogs.com/bonelee/p/6248172.html)
- 大数据开源引擎presto和impala比较(https://www.zhihu.com/question/391626341)