Apache Druid介绍

什么是Apache Druid?

Apache Druid是一个专为大数据集的快速切片分析(OLAP查询)而设计的实时分析数据库。Druid作为数据库,最常用于支持以下用例:实时摄取、快速查询和高运行时长。例如,Druid一般用于支持分析型应用程序的GUI,或是需要快速聚合的高并发API后台。Druid最适合用于面向事件的数据。
Druid常见的应用领域包括:

  • 点击流分析(Web和移动分析)
  • 网络遥测分析(网络性能监视器)
  • 服务器指标存储
  • 供应链分析(制造指标)
  • 应用程序性能指标
  • 数字市场营销/广告分析
  • 商业智能/OLAP

Druid的核心体系架构包括了数据仓库、时间序列数据库和logsearch系统的概念。Druid的关键特性包括:

  1. 列式存储方式。
    Druid使用列式存储,意味着它只需要装载查询所需要的特定列。这就使查询特定几列时的效率有了极大提升。另外,针对每一列的数据类型都做了存储优化,因此支持快速遍历与聚合。
  2. 可扩展的分布式系统。
    Druid一般被部署在十到百个服务器的集群中,并且可以提供每秒数百万条记录的摄取率,保留数以万亿计的记录,并且查询延迟在毫秒至数秒之间。
  3. 大规模并行处理。
  4. Druid可以在一个集群并行处理一个查询。
    实时或批摄入。Druid可以摄入实时数据(摄入的数据可立即用于查询)或是批数据。
  5. 自愈、自平衡、易于操作。
    操作者无论是扩展还是缩小集群,简单的增加或是减少服务器,集群都将在后台自动的保持均衡,而无需停机进行恢复。如果任何Druid服务器宕机,系统将自动绕过损坏机器,直到这些服务器可以被替换。Druid可以7*24小时运行而无需中途停机,就算配置变化和软件更新也无需停机。
  6. 云原生,不会丢失数据的容错体系架构。
    一旦Druid摄取了你的数据,其副本就被安全的存储在了deep storage(典型的云存储,HDFS,或一个共享的文件系统)。即使是每一个Druid服务器都宕机了,你的数据也可以从deep storage中恢复过来。由于大部分的宕机影响的仅仅是一部分Druid服务器,副本确保了当系统恢复之后查询功能依然可用。
  7. 可用于快速筛选的索引。
    Druid使用ConciseRoaring压缩位图索引来创建索引,该索引可以加强快速过滤与搜索多个列。
  8. 基于时间的分区。
    Druid的第一个分区数据是时间,而且可以添加其他域的分区。这意味着基于时间的查询只会访问匹配了查询时间范围的分区。这可以显著的提升基于时间的数据查询性能。
  9. 近似算法。
    Druid包含了近似计数、近似排名、计算的近似直方图和分位数。这些算法只用较小的内存,通常可以显著地快于精确计算。由于有些场景是精确度比计算速度更重要,Druid也提供了精确计数与精确排名。
  10. 在摄取时间自动汇总。
    Druid支持在摄取数据时间自动汇总(可选地)。这个汇总可以预聚合你的数据,并且可以大量的节约成本与提升性能。

何时使用Druid?

当前有许多不同规模的公司正在针对许多用例使用Druid。可以查看Powered by Apache Druid页面。
如果你的用例符合以下所描述的,那么Druid就是很好的选择:

  • 插入的频率很高,但是更新较少。
  • 你的大多数查询是聚合或是报告查询(“group by查询”),或者也包括查找和遍历查询。
  • 你希望查询延迟在100ms到数秒之间。
  • 你的数据有时间元素(Druid专门针对时间相关数据做了设计与优化)。
  • 你或许拥有多个表,但是每次查询只命中一个大的分布式表。查询可能命中多个较小的“查找”表。
  • 你拥有高基数列(例如URL或用户ID等),并且需要对它们快速计数或排名。
  • 你需要从Kafka、HDFS、平面文件或如Amazon S3这样的对象存储中读取数据。

而以下这些情况就说明你不适合选用Druid:

  • 你需要对现存记录利用主键做低延迟更新。Druid支持流数据插入而非流数据更新(更新需使用后台批处理方式)。
  • 你在构建一个离线的查询系统,该系统对查询延迟没有很高要求。
  • 你需要做“大”Join操作(大表和大表做Join操作),并且你能够容忍这些查询需要较长时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值