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. RabbitMQ消息队列(三): 发布/订阅

    1. 订阅/发布: 前面worker示例中的每个任务都是只发送给某一个worker,如果我们多个worker都需要接收处理同一个任务,此时就要使用 订阅/发布功能,比如,日志模块产生日志并发送到队列中 ...

  2. appium的使用

    这套教程年久失修,问题的人也比较多,于是,我重新整理了一套appium入门教程. appium新手入门(1)—— appium介绍 appium新手入门(2)—— 安装 Android SDK app ...

  3. JQ子页面对父页面的元素进行操作

    需要加上parent.document,才能找到父页面的元素 如: $("#tabs", parent.document).click();

  4. BigDecimal常用操作

    import java.math.BigDecimal; public class BigDecimalUtil { /** * 由于Java的简单类型不能够精确的对浮点数进行运算,这个工具类提供精 ...

  5. 细说robots.txt

    robots.txt Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可 ...

  6. hdu 1062(DFS||dijkstra)

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 44870   Accepted: 13259 Descripti ...

  7. Go简单的Goroutine示例

    最简单的,接下来,会是竞争,加锁... package main import ( "fmt" "runtime" "sync" ) var ...

  8. (22)python 自动化

    例子 from selenium import webdriver driver = webdriver.PhantomJS() driver.get("http://www.huhumh. ...

  9. Codeforces Round 251 (Div. 2)

    layout: post title: Codeforces Round 251 (Div. 2) author: "luowentaoaa" catalog: true tags ...

  10. 洛谷—— P1775 古代人的难题_NOI导刊2010提高(02)

    P1775 古代人的难题_NOI导刊2010提高(02) 题目描述 门打开了,里面果然是个很大的厅堂.但可惜厅堂内除了中央的一张羊皮纸和一支精致的石笔,周围几具骷髅外什么也没有.难道这就是王室的遗产? ...