1.Druid概念
Druid是一個快速的列式分佈式的支持實時分析的數據存儲系統。它在處理PB級數據、毫秒級查詢、數據實時處理方面,比傳統的OLAP系統有了顯著的性能改進。
Druid的官方網站是http://druid.io。
注意:阿里巴巴也曾創建過一個開源項目叫作Druid(簡稱阿里Druid),它是一個數據庫連接池的項目。阿里Druid和本文討論的Druid沒有任何關係,它們解決完全不同的問題。
2.Druid特點
3.應用場景
4.Druid對比Impala/Presto/Spark SQL/Kylin/Elasticsearch
對比項目 | Druid | Kylin | Presto | Impala | Spark SQL | ES |
---|---|---|---|---|---|---|
亞秒級響應 | Y | Y | N | N | N | N |
百億數據集 | Y | Y | Y | Y | Y | Y |
SQL支持 | N(開發中) | Y | Y | Y | Y | N |
離線 | Y | Y | Y | Y | Y | Y |
實時 | Y | N(開發中) | N | N | N | Y |
精確去重 | N | Y | Y | Y | Y | N |
多表Join | N | Y | Y | Y | Y | N |
JDBC for BI | N | Y | Y | Y | Y | N |
1)Druid:是一個實時處理時序數據的OLAP數據庫,因爲它的索引首先按照時間分片,查詢的時候也是按照時間線去路由索引。
2)Kylin:核心是Cube,Cube是一種預計算技術,基本思路是預先對數據作多維索引,查詢時只掃描索引而不訪問原始數據從而提速。
3)Presto:它沒有使用MapReduce,大部分場景下比Hive快一個數量級,其中的關鍵是所有的處理都在內存中完成。
4)Impala:基於內存運算,速度快,支持的數據源沒有Presto多。
5)Spark SQL:基於Spark平臺上的一個OLAP框架,基本思路是增加機器來並行計算,從而提高查詢速度。
6)ES:最大的特點是使用了倒排索引解決索引問題。根據研究,ES在數據獲取和聚集用的資源比在Druid高。
7)框架選型:
(1)從超大數據的查詢效率來看:
Druid > Kylin > Presto > Spark SQL
(2)從支持的數據源種類來講:
Presto > Spark SQL > Kylin > Druid