Apache Druid简介

Apache Druid简介
什么是德鲁伊?
Apache Druid是一个实时分析数据库,旨在对大型数据集进行快速的切片和切分分析(“ OLAP ”查询)。德鲁伊最常用作数据库,以支持对实时摄取,快速查询性能和高正常运行时间很重要的用例。因此,Druid通常用于为分析应用程序的GUI供电,或用作需要快速聚合的高并发API的后端。德鲁伊最适合面向事件的数据。

德鲁伊的常见应用领域包括:

点击流分析(网络和移动分析)
网络遥测分析(网络性能监控)
服务器指标存储
供应链分析(制造指标)
应用程序性能指标
数字营销/广告分析
商业智能/ OLAP
德鲁伊的核心架构结合了数据仓库,时间序列数据库和日志搜索系统的思想。德鲁伊的一些主要功能是:

列式存储格式。Druid使用面向列的存储,这意味着它仅需要加载特定查询所需的确切列。这极大地提高了仅命中几列的查询的速度。此外,每列的存储都针对其特定的数据类型进行了优化,从而支持快速扫描和聚合。
可扩展的分布式系统。Druid通常部署在数十到数百台服务器的群集中,并且可以提供每秒数百万条记录的接收速率,数万亿条记录的保留以及亚秒级到几秒的查询延迟。
大规模并行处理。Druid可以在整个集群中并行处理查询。
实时或批量摄取。德鲁伊可以实时(批量获取已摄取的数据)或批量提取数据。
自愈,自平衡,易于操作。作为操作员,要扩展或扩展群集,只需添加或删除服务器,群集将在后台自动重新平衡自身,而不会造成任何停机。如果任何Druid服务器出现故障,系统将自动绕过损坏,直到可以更换这些服务器为止。Druid设计为全天候运行,不需要任何计划的停机时间,包括配置更改和软件更新在内的任何原因。
云原生的容错架构,不会丢失数据。一旦Druid摄取了数据,副本就安全地存储在深度存储(通常是云存储,HDFS或共享文件系统)中。即使每台Druid服务器发生故障,也可以从深度存储中恢复您的数据。对于仅影响少数Druid服务器的有限故障,复制可确保在系统恢复时仍然可以进行查询。
用于快速过滤的索引。Druid使用Roaring或 CONCISE压缩的位图索引来创建索引,以支持快速过滤和跨多列搜索。
基于时间的分区。德鲁伊首先按时间对数据进行分区,然后可以根据其他字段进行分区。这意味着基于时间的查询将仅访问与查询时间范围匹配的分区。这将大大提高基于时间的数据的性能。
近似算法。德鲁伊包括用于近似计数区别,近似排名以及近似直方图和分位数计算的算法。这些算法提供有限的内存使用量,通常比精确计算要快得多。对于精度比速度更重要的情况,德鲁伊还提供了精确的计数区别和精确的排名。
摄取时自动汇总。Druid可选地在摄取时支持数据汇总。这种汇总会部分地预先汇总您的数据,并可以节省大量成本并提高性能。
我什么时候应该使用德鲁伊?
许多公司都将Druid用于各种不同的用例。签出 Powered by Apache Druid页面

如果您的用例符合以下几个描述符,则Druid可能是一个不错的选择:

插入率很高,但更新并不常见。
您的大多数查询都是聚合查询和报告查询(“分组依据”查询)。您可能还具有搜索和扫描查询。
您将查询延迟目标定为100毫秒到几秒钟。
您的数据具有时间成分(Druid包括与时间特别相关的优化和设计选择)。
您可能有多个表,但是每个查询仅命中一个大的分布式表。查询可能会击中多个较小的“查找”表。
您具有高基数数据列(例如URL,用户ID),并且需要对其进行快速计数和排名。
您要从Kafka,HDFS,平面文件或Amazon S3之类的对象存储中加载数据。
情况下,您可能会不希望使用德鲁伊包括:

您需要使用主键对现有记录进行低延迟更新。德鲁伊支持流插入,但不支持流更新(使用后台批处理作业完成更新)。
您正在构建一个脱机报告系统,其中查询延迟不是很重要。
您想要进行“大”联接(将一个大事实表连接到另一个大事实表),并且可以花很长时间来完成这些查询。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值