Druid 和 Impala Shark 的对比取决于产品要求, 取决于系统是设计成做什么的

Druid 被设计成

一直在线, 高可用性
    实时插入数据
    分片分块形式的任意查询
据我所知 Impala 和 Shark 起初关心的是用更快的查询模块换Hadoop MapReduce, 查询模块是完全通用的, 和现有的Hadoop生态系统打成一片.  请注意我不是Impala or Shark专家, 也不熟悉Impala和Shark的路线图. 如果有什么错误, 我会更改, 请发邮件到邮件列表.
这是什么意思呢, 我们可以从以下四个通用的方面看
    容错性
    查询速度
    数据插入
    查询灵活性

容错性

druid在查询之前从深存储(Deep Storage) 拉取segment。 这意味着集群中的数据在一定在历史节点(historical node)的本地副本之中。 如果deep storage 出了问题, 新的segment不会加载, 集群可以继续支持查询深存储出现问题之前的数据。
Impala and Shark, 使用另外一种方式, 从HDFS拉取数据, 这意味着需要需要将程序下载加载。 当支持的文件系统出了问题, 被cache的数据仍可用。我不确定。
这只是一个例子, Druid 被设计成任何地方出错后仍能够继续提供服务, 设计文档中描述了更多的详细信息

查询速度

Druid 操控注入的数据, 将数据保存成列式存储并压缩添并加索引结构, 这些都提高查询速度。 列式存储只需查看查询的数据列. 压缩提高了RAM的容量让我们在内存之中保存更多的数据。 索引结构相当于添加了boolean filter, 使查询更快, 这样可以做更多的查询.
Impala/Shark 可以被认为是HDFS的缓存守护进程.  没有查询的时候守护进程依然存在(这就消除了Map Reduce的JVM启动时间), 而且利用了本地Cache, 这样数据可以被快速度访问和修改。 但是我认为这不会超越Cache的能力. 所以, 直到现在, 他们没有改变这种无理性暴力行为方式, 没有改变扫描所有的东西的方式
[注: 作者对Impala了解不够, 只举一例, impala也支持列式存储]

数据插入

[Druid本来就支持实时消费数据, 可以实时注入数据并查询刚刚注入的数据, 时间延迟很小, 取决于这些数据什么时候到达Druid
Impala/Shark 基于HDFS或者其他存储, 被后面的存储限制注入频率。 一般来讲, 后面的存储有很大的瓶颈。

查询灵活性

Druid 支持时间序列和group by 查询. 不支持join, 这点有一些不灵活.
Impala/Shark 支持SQL类型的full join

Druid对比Impala/Shark的更多相关文章

  1. Druid对比Hadoop

    Druid对比Hadoop Hadoop 向世界证明, 花费很少的钱实现典型的解决方案, 将数据保存在一般的商用机器的数据仓库里是可行的. 当人们将自己的数据保存在Hadoop, 他们发现两个问题   ...

  2. Druid对比Elasticsearch

    我们不是Elasticsearch的专家, 如果描绘有误, 请通过邮件列表或者其他途径告知我们. Elasticsearch 是基于Apache Lucene搜索服务器.  提供了对无模式文档的全文检 ...

  3. Druid对比Redshift

    Redshift 内部使用了亚马逊取得了授权的ParAccel 实时注入数据 抛开可能的性能不同, 有功能性的不同 Druid 适合分析大数据量的流式数据, 也能够实时加载和聚合数据一般来讲, 传统的 ...

  4. Druid对比Cassandra

    不是Cassandra专家, 如果描绘有错误, 请通过邮件列表或者其他方式告知, 我们会修正. Druid对扫描和聚合做了很大程度的优化, 不用提前计算就支持任意的向下钻取, 还可以实时摄入流式数据并 ...

  5. Druid对比Vertica

    怎么比较Druid和Vertica? Vertica 类似与之前介绍的ParAccel/Redshift(Druid-vs-Redshift). 不是实时注入数据: 提供SQL的全部语法支持 另外一个 ...

  6. Druid(准)实时分析统计数据库——列存储+高效压缩

    Druid是一个开源的.分布式的.列存储系统,特别适用于大数据上的(准)实时分析统计.且具有较好的稳定性(Highly Available). 其相对比较轻量级,文档非常完善,也比较容易上手. Dru ...

  7. [转]impala操作hive数据实例

    https://blog.csdn.net/wiborgite/article/details/78813342 背景说明: 基于CHD quick VM环境,在一个VM中同时包含了HDFS.YARN ...

  8. Druid连接池(三)

    十二.Druid缓存 连接Oracle数据库,打开PSCache,在其他的数据库连接池都会存在内存占用过多的问题,Druid是唯一解决这个问题的连接池. Oracle数据库下PreparedState ...

  9. impala进阶

    一.impala存储 1.文件类型 2.压缩方式 二.impala分区 1.创建分区方式 partitioned by 创建表时,添加该字段指定分区列表: create table t_person( ...

随机推荐

  1. Swift开发学习(二):Playground

    http://blog.csdn.net/powerlly/article/details/29674253 Swift开发学习:Playground 关于 对于软件用户.游戏玩家,大家一直都在提倡用 ...

  2. 【MT8382/8121】使用绝对路径编译模块会导致recourse_overlay无法应用的问题

    之前为了方便mm模块编译,写了个脚本,实现了在任意模块其子目录下执行脚本即可编译的功能. 其实原理就是一层一层目录地往上寻找Android.mk文件,找到存放Android.mk目录后,就把该目录当作 ...

  3. Pyhton-Requests之接口测试

    非常感谢[百人计划]五娃的分享!下面是整理的笔记: 一.环境准备: Pyhton 2.x或者Pyhton 3.x.Requests库.(我安装的版本是Pyhton 3.4) 安装 Pyhton 3.x ...

  4. SQLAlchemy中filter()和filter_by()有什么区别

    from:https://segmentfault.com/q/1010000000140472 filter: apply the given filtering criterion to a co ...

  5. js数组高效去重

    http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 这个方法的思路是先把数组排序,然后比较相邻的两个值. 排序的时候用的J ...

  6. [ Python - 9 ] 高阶函数map和reduce连用实例

    1. 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456: from functools import reduce def str2num( ...

  7. [ Mariadb ] 通过HAProxy代理后端Mariadb实现负载均衡

    一.本次环境架构图 由于公司内网服务器有限,所以后端采用Mariadb自带的mysql_multi模型实现多实例. mysql的多实例有两种方式可以实现,两种方式各有利弊. 1.使用多个配置文件启动不 ...

  8. Spring boot 文件路径读取异常

    在开发代码中,有一段需要获取resources目录下的一个配置文件(这里写作test.xml). 这段代码在ide中没有任何问题,但是一打成jar包发布到线上,这段代码就会报找不到对应文件的错误. 按 ...

  9. win上配置nginx

    win上配置nginx 网上配置nginx的教程大多都是linux上的,今天贴出来nginx在win上的配置,在此篇配置中,nginx代理了Tomcat以及node服务.配置如下: 注意:根据实际经验 ...

  10. 从1到整数n中1出现的次数

    题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数.例如输入12,从1到12这些整数中包含1的数字有1,10,11和12共出现了5次.   不考虑时间效率的解法: int Numbe ...