Druid 简介

作者: MeazZa | 来源:发表于2018-01-17 19:49 被阅读0次

    Druid是一款开源的,为实时和离线数据的亚秒级查询设计的数据存储引擎。它主要用于对事实数据(event data)进行商业智能OLAP分析。Druid提供低延时(实时)数据导入,灵活的数据探索(data exploration)和快速的数据聚合。目前Druid可以适用于万亿条和PB级的数据量,Druid最常用于面向用户的数据分析应用中。

    关键词
    • 亚秒级OLAP查询
    • 实时数据流的导入
    • 多用户同时查询
    • 成本和性能的平衡
    • 高可用性
    • 可扩展性
    Druid是否适合我?

    这部分提供了Druid适合满足的需求。如果我们要开发的应用正好有相同的需求,那么Druid是一个很好的选择。

    • 快速聚合和OLAP查询的应用
    • 实时数据分析(当然,Druid同样可以满足离线数据分析的需求)
    • 海量数据(万亿条,PB级)
    • 始终可用的数据存储引擎
    Druid与其他引擎的比较

    这里将Druid和其他常见的数据存储和查询引擎进行对比,以便于更好的理解Druid使用场景。

    • Druid vs Elastichsearch
    Druid Elasticsearch
    整体定位 OLAP引擎,提供高性能、低成本的数据分析操作 用于搜索系统,提供全文本的搜索功能
    数据格式 结构化数据,需要提前定义好数据schema 非结构化数据,可以导入任意schema的数据
    存储要求 可以在数据导入时进行汇总聚合,缩减数据量 原始日志级的存储,存储增长较快
    聚合特性 专门为数据聚合查询优化 也可以支持数据聚合查询,但资源开销较大
    • Druid vs Key/Value Stores(HBase..)
    Druid Key/Value Stores
    OLAP查询方式 支持任何维度下的指标聚合查询 聚合查询需要将所有可能的查询集合预计算并保存,需要大量的预计算和存储开销。Range scan的聚合方式由于没有针对维度和时间列进行索引,需要扫描大量的数据行,当数据量增加时,查询性能会大幅降低
    • Druid vs SQL-on-Hadoop(Impala/Drill/Spark SQL/..)
    Druid SQL-on-Hadoop
    查询方式 数据在每个server查询,查询结果在servers之间传输 数据从存储层到计算层,存在一定的延迟(serde time)
    数据导入 支持实时数据的导入,并可以立即查询 基于HDFS的存储方式,限制了数据导入的速率
    查询灵活性 Druid的查询语句偏底层,SQL的支持上存在不完善(不支持JOIN) 对SQL查询支持良好
    总结

    Druid最适合的场景是,对海量实时数据,从Kafka导入到Druid中,并进行OLAP查询。当然,Druid同时也支持离线数据的导入和查询,也可以达到很高的查询性能。

    相关文章

      网友评论

        本文标题:Druid 简介

        本文链接:https://www.haomeiwen.com/subject/fnouoxtx.html