最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

[综合] 开源的OLAP引擎

[复制链接]
跳转到指定楼层
楼主
发表于 2019-5-21 14:15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大数据的声音虽然没有前几年热闹,但hadoop生态圈的造轮子脚步一点也没停下来。最近几天有空,梳理一下各种OLAP的计算和存储框架。


纯计算框架(query engine)
Impala 目前在国内已经有不少商业客户在使用,估计是cloudera的国内市场推广做的不错。
架构上,元数据需要单独的mysql/pgsql来存储,需要两个单独的stateserver和catalogserver来管理集群状态和元数据的变化;
SQL compilation支持。CBO和vectorization介绍不详细;impala的使用文档比较详细,内部技术细节的文档不多;
对数据源的支持比较少,很多nosql是不支持的;
C++开发,cloudera主导。
Drill Drill是一个纯粹的SQL query engine,支持多种data source,Hadoop storage, S3-style云存储,NoSQL存储。
主要特点是支持多种的data source(HDFS HBase Mongo S3 kafka openTSDB等等),查询前不需要etl工具做转换,跟BI工具集成比较好;
支持SQL compilation,CBO这块用的calcite,支持data locality aware,predicate 可以下推到store层,如果store层有对应的filter。
架构中比较有特点的两个地方:
meta data存储在底层存储引擎中,不像hive还需要一个mysql。
用一个distributed in-memory k/v cache(infinispan,jboss cache的后继项目)来缓存查询查询计划分片,执行中间结果和统计信息。
SQL compilation,Vectorization, pipeline等技术都支持。
java开发,MapR公司主导。impala和drill不同的技术路线跟两个公司的定位有很大关系。
presto 最初是facebook主导开发,开源后传统的数仓公司TeraData提供商业支持。
支持的多种数据源,mysql redis kafka cassandra等,支持的数据源比Drill要少,对Json数据的支持没有Drill好
内部的架构有点像impala,一个coodinator+多个worker。
Hive 最初也是facebook开发。
最初Hive的性能着实堪忧,目前也增加了CBO和vectorization等新特性。map reduce中间结果存盘确实是个硬伤。
SparkSQL 跟其他的OLAP引擎不同,sparkSQL分析的数据以RDD/DataFrame方式存放在spark集群中。
sparkSQL的CBO要到最新的2.2版本才支持,vectorization特性还在开发中
存储框架(data store)
kudu kudu是一套完全独立的分布式存储引擎,很多设计概念上借鉴了HBase,但是又跟HBase不同
不需要HDFS,通过raft做数据复制;sharding策略支持keyrange和hash多种;
数据格式在parquet基础上做了些修改,支持二级索引,更像一个列式存储,而不是HBase schema-free的kv方式
kudu也是cloudera主导的项目,跟hadoop ecosystem结合比较好,尤其impala,通过impala可以支持update操作
Druid Druid的整体定位跟kylin比较像,适用于存储和查询eventlog。
首先它没有自己的存储引擎,而是依赖于HDFS S3等; native查询接口是Http+json,SQL接口需要依赖于社区的库或者Hive;不支持Join。
数据以上卷(roll-up)的方式从外部导入。简单的说对导入时,根据用户指定的统计策略,对某些列(维度)的数据做聚合统计,将聚合数据存盘以节省存储空间。导入有方式,事实和批量;导入时会根据对数据做分片,还可以指定列的索引(索引建在分片上)和压缩方式
java开发,使用的公司比较多,阿里,netflix,ebay等, 有个公司imply提供商业支持。
Hybrid compute storage
palo palo是百度开源的一个数仓产品,官方说法是谷歌mesa和clouderaimpala的结合
palo实现了SQL查询引擎和分布式存储引擎,不依赖任何hadoop组件
palo的meta data并不依赖于一个单点的metadata storage(例如hive的mysql),而是通过Paxos-like协议做了多点复制,这样的多个节点可以同时提供查询能力
sharding策略是先按照某个列做key-range(例如时间戳)切分,然后再按照hash(例如UserID)切分
存储引擎方面,palo支持ORC或者parquet这种方式的列存
为了支持近实时导入,存储引擎层实现了MVCC
保存全量数据的同时,支持rollup 物化视图
简单的多租户支持
C++编写,利用LLVM实现vectorization
clickhouse 俄罗斯yandex开源的一个数仓产品,c++编写。跟palo或者mesa定位类似,目前官方文档是俄语的,国内有一些翻译,有人在尝试

楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-26 20:06

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表