数据计算 实时计算 时序数据库
druid

Druid是一个快速的列式分布式的支持实时分析的序列数据库

标签:
商务合作
0
(0)

概览

Druid(“德鲁伊”)是由广告公司MetaMarkets开源的一款开源的,为实时和离线数据的亚秒级查询设计的实时大数据分析引擎,主要用于大规模事件流数据(Event Stream Data)的存储和分析。是一个快速的列式分布式的支持实时分析的数据存储系统。它在处理PB级数据、毫秒级查询、数据实时处理方面,比传统的OLAP系统有了显著的性能改进。

特性

  • 列式存储Druid单独存储并压缩每一列数据。并且查询时只查询特定需要查询的数据,支持快速scan,ranking和groupBy。
  • 原生检索索引Druid为string值创建反向索引以达到数据的快速搜索和过滤。
  • 流式和批量数据摄入开箱即用的Apache kafka,HDFS,AWS S3连接器connectors,流式处理器。
  • 灵活的数据模式Druid优雅地适应不断变化的数据模式和嵌套数据类型。
  • 基于时间的优化分区Druid基于时间对数据进行智能分区。因此,Druid基于时间的查询将明显快于传统数据库。
  • 支持SQL语句除了原生的基于JSON的查询外,Druid还支持基于HTTP和JDBC的SQL。
  • 水平扩展能力百万/秒的数据摄入速率,海量数据存储,亚秒级查询。
  • 易于运维可以通过添加或移除Server来扩容和缩容。Druid支持自动重平衡,失效转移。

使用场景

Apache Druid适用于对实时数据提取,高性能查询和高可用要求较高的场景。因此,Druid通常被作为一个具有丰富GUI的分析系统,或者作为一个需要快速聚合的高并发API的后台。Druid更适合面向事件数据。

比较常见的使用场景:

  • 点击流分析(web和mobile分析)
  • 风控分析
  • 网路遥测分析(网络性能监控)
  • 服务器指标存储
  • 供应链分析(制造业指标)
  • 应用性能指标
  • 商业智能/实时在线分析系统OLAP

架构

Druid是一组系统,按照职责分成不同的角色。目前存在五种节点类型:

  • Historical: 历史节点的职责主要是对历史的数据进行存储和查询,历史节点从Deep Storage下载Segment,然后响应Broker对于Segment的查询将查询结果返回给Broker节点,它们通过Zookeeper来声明自己存储的节点,同时也通过zookeeper来监听加载或删除Segment的信号。
  • Coordinator:协调节点监测一组历史节点来保证数据的可用和冗余。协调节点读取元数据存储来确定哪些Segment需要load到集群中,通过zk来感知Historical节点的存在,通过在Zookeeper上创建entry来和Historical节点通信来告诉他们加载或者删除Segment
  • Broker:节点接收外部客户端的查询,并且将查询路由到历史节点和实时节点。当Broker收到返回的结果的时候,它将结果merge起来然后返回给调用者。Broker通过Zook来感知实时节点和历史节点的存在。
  • Indexing Service: 索引服务是一些worker用来从实时获取数据或者批量插入数据。
  • Realtime:获取实时数据
druid

除了上述五个节点,Druid还有三个外部依赖:

  • Zookeeper集群
  • 元数据存储实例:Mysql
  • Deep Storage:HDFS

Druid对比Impala/Presto/Spark SQL/Kylin/Elasticsearch

对比项目DruidKylinPrestoImpalaSpark SQLES
亚秒级响应YYNNNN
百亿数据集YYYYYY
SQL支持N(开发中)YYYYN
离线YYYYYY
实时YN(开发中)NNNY
精确去重NYYYYN
多表JoinNYYYYN
JDBC for BINYYYYN

这个大数据组件是否好用呢?

点击星号为它评分!

平均评分 0 / 5. 投票数: 0

到目前为止还没有投票!成为第一位评论此组件。

相关导航

暂无评论

暂无评论...