925985140
021-954485492
导航

Apache Druid 高性能的实时分析型数据库

发布日期:2021-12-31 00:13

本文摘要:现在广为人知的Druid有两个,一个是阿里巴巴开源的Durid数据库毗连池,一个是MetaMarkets开源的漫衍式、实时多维OLAP分析的数据处置惩罚系统。这篇文章将先容后者,即Apache Druid。由美国广告技术公司MetaMarkets公司2012年开源,孵化于Apache。 一、Apache Druid 是什么?Druid 是一个漫衍式的、支持实时多维 OLAP 分析的数据处置惩罚系统。它既支持高速的数据实时摄入处置惩罚,也支持实时且灵活的多维数据分析查询。

leyu乐鱼体育官网

现在广为人知的Druid有两个,一个是阿里巴巴开源的Durid数据库毗连池,一个是MetaMarkets开源的漫衍式、实时多维OLAP分析的数据处置惩罚系统。这篇文章将先容后者,即Apache Druid。由美国广告技术公司MetaMarkets公司2012年开源,孵化于Apache。

一、Apache Druid 是什么?Druid 是一个漫衍式的、支持实时多维 OLAP 分析的数据处置惩罚系统。它既支持高速的数据实时摄入处置惩罚,也支持实时且灵活的多维数据分析查询。因此 Druid 最常用的场景就是大数据配景下、灵活快速的多维 OLAP 分析。

另外,Druid 另有一个关键的特点:它支持凭据时间戳对数据举行预聚合摄入和聚合分析,因此也有用户经常在有时序数据处置惩罚分析的场景中用到它。二、Apache Druid基本特点Druid是一个用于大数据实时查询和分析的高容错、高性能开源漫衍式系统,旨在快速处置惩罚大规模的数据,并能够实现快速查询和分析。

分析和存储系统,提供极具成本效益而且永远在线的实时数据摄取和任意数据处置惩罚。为分析而设计——Druid是为OLAP事情流的探索性分析而构建。它支持种种filter、aggregator和查询类型,并为添加新功效提供了一个框架。用户已经使用Druid的基础设施开发了高级查询和直方图功效。

交互式查询——Druid的低延迟数据摄取架构允许事件在它们建立后毫秒内查询,因为Druid的查询延时通过只读取和扫描有须要的元素被优化。Aggregate和 filter没有坐等效果。

高可用性——Druid是用来支持需要一直在线的SaaS的实现。你的数据在系统更新时依然可用、可查询。规模的扩大和缩小不会造成数据丢失。

可伸缩——现有的Druid部署天天处置惩罚数十亿事件和TB级数据。Druid被设计成PB级别。

Druid主要是解决低延迟下实时数据摄入与查询的平台,本质是一个数据存储。数据存储花样对一款存储系统来说是最焦点的组件,Druid 的数据花样是自界说的,以此保证了在海量数据下的亚秒级查询。Druid有如下一些特性:1. 亚秒响应的交互式查询,支持较高并发。

2. 支持实时导入,导入即可被查询,支持高并发导入。3. 接纳漫衍式 shared-nothing 的架构,可以扩展到PB级。4. 支持聚合函数,count 和 sum,以及使用 javascript 实现自界说 UDF。

5. 支持庞大的 Aggregator,近似查询的 Aggregator,例如 HyperLoglog 以及 Yahoo 开源的 DataSketches。6. 支持Groupby,Select,Search查询。

7. 不支持大表之间的Join,但其 lookup 功效满足和维度表的 Join。Druid为什么查询速度快?数据的预聚合:Druid 可以根据给定的时间粒度和所有维度列,举行最细粒度的指标聚合运算,并加以生存为原始数据。

列式存储:对部门列举行查询时可以显著提高效率。Bitmap 索引:使用位图对所有维度列构建索引,可以快速定位数据行。

mmap:通过内存映射文件的方式加速对于 Segment 的会见。查询效果的中间缓存:支持对于查询级别和 Segment 级此外缓存。三、Druid使用场景Druid适合于以下场景:插入频繁,但很少更新。大多数查询都是聚合和陈诉性质的查询(group by查询)以及搜索和扫描查询。

查询延迟要求为100毫秒到几秒。数据中有一个时间组件(Druid包罗详细与时间相关的优化和设计选择)。

有多个表,但每次查询只能会见一个大的漫衍式表,或者查询可能会遇到多个较小的“查找”表。有高基数数据列(例如URL,用户ID),需要对它们举行快速计数和排名。希望从Kafka,HDFS,文件或工具存储(如Amazon S3)中加载数据。

Druid不适用于以下场景:需要使用主键对现有记载举行低延迟更新。Druid支持流式插入,但不支持流式更新(使用后台批处置惩罚作业举行更新)。

需要构建一个离线陈诉系统,其中查询延迟不是很重要。想做big joins(将一个大事实表毗连到另一个大事实表),可能完成这些查询需要花费你几个小时。四、Druid架构图如图所示,分为三种服务器类型:主服务器(Master)、查询服务器(Query)和数据服务器(Data)。

Master:运行Coordinator和Overlord历程,治理数据可用性和摄取。Query:运行Broker和可选的Router历程,处置惩罚来自外部客户端的查询。

Data:运行Historical和MiddleManager历程,运行数据的收罗以及存储所有历史查询数据负载。Druid有若干差别类型的历程,简朴形貌如下:Coordinator 历程:卖力集群 Segment 的治理和公布,并确保 Segment 在 Historical 集群中的负载平衡。Overlord 历程:卖力接受任务、协调任务的分配、建立任务锁以及收集、返回任务运行状态给客户端;通过设置 druid.Coordinator.asOverlord.enabled 属性,Coordinator历程和Overlord历程可以作为单个组合历程运行。

让 Coordinator 具备 Overlord 功效,这样可以淘汰一个组件的部署和运维。Broker 历程:卖力从客户端吸收查询请求,并将查询请求转发给 His。


本文关键词:Apache,Druid,高性能,的,实时,分析型,数据库,leyu乐鱼体育官网

本文来源:乐鱼体育官网登录-www.dyfczy.com