Druid实时大数据分析总结(三)

Druid的初级概念

Druid是一个分布式的支持实时分析的数据存储系统Data Store 摘录来自: “Druid实时大数据分析原理与实践。” Apple Books. “Druid设计之初的想法就是为分析而生,它在处理数据的规模、数据处理的实时性方面,比传统的OLAP系统有了显著的性能改进,而且拥抱主流的开源生态,包括Hadoop等。”

整个数据分析的基础架构通常分为以下几类。

(1)使用Hadoop/Spark的MR分析。

(2)将Hadoop/Spark的结果注入RDBMS中提供实时分析。

(3)将结果注入到容量更大的NoSQL中,例如HBase等。

(4)将数据源进行流式处理,对接流式计算框架,如Storm,结果落在RDBMS/NoSQL中。

(5)将数据源进行流式处理,对接分析数据库,例如Druid、Vertica等。

Druid优势

Druid之所以保持高效,有这样几个原因:

一是数据进行了有效的聚合或预计算;

二是数据结构的优化,应用了Bitmap的压缩算法;

三是可扩展的高可用架构,灵活支持部署的扩展;

四是社区的力量,Druid开发和用户社区保持活跃,不断推动Druid的完善和改进。

Druid的三个设计原则

在设计之初,开发人员确定了三个设计原则(Design Principle)。

(1)快速查询(Fast Query):部分数据的聚合(Partial Aggregate)+内存化(In-Memory)+索引(Index)。

(2)水平扩展能力(Horizontal Scalability):分布式数据(Distributed Data)+并行化查询(Parallelizable Query)。

(3)实时分析(Realtime Analytics):不可变的过去,只追加的未来(Immutable Past,Append-Only Future)。

Druid具有如下技术特点。

  1. 数据吞吐量大。
  2. 支持流式数据摄入和实时。
  3. 查询灵活且快。
  4. 社区支持力度大。

在Hadoop和Spark大生态繁荣圈中,Druid能获得众多公司的青睐,异军突起,总结起来有三个原因。

第一,Druid不断拥抱各种主流开源生态,例如Hadoop、Spark等。

第二,围绕着Druid,已经开始出现一些项目,完善了Druid的生态系统,其中包括数据的摄入、客户端的访问、数据查询的便利和数据的可视化等。

第三,出现了专业的Druid技术服务公司,例如Imply.io等,帮助企业客户更好地认识Druid,使用和优化Druid,以解决客户的数据分析需求。

对行业中不同的数据分析软件进行介绍和对比,包括一些时序数据库

Druid的核心是通过数据预先聚合提高查询性能,针对预先定义好的Schema,因此适合实时分析的场景,结果返回时间在亚秒级。Spark可以对任何Schema进行灵活操作,适合处理规模更大的批处理任务。

数据分析的世界繁花似锦,虽然我们可以通过开源/商业、SaaS/私有部署等方式来分类,但是每种数据分析软件都有自己独特的定位。如果需要给Druid几个标签的话,“开源”、“实时”、“高效”、“简洁”是合适的标签。与大部分系统相比,Druid系统功能属于精简的,性能是出众的,实时支持也是超群的。

Druid的设计理念和架构介绍

Druid却能够同时提供性能卓越的数据实时摄入与复杂的查询性能。它是怎么做到的呢?答案是通过其独到的架构设计、基于DataSource与Segment的数据结构,以及在许多系统细节上的优秀设计与实现。

Druid总体架构图显示出Druid自身包含以下4类节点。

实时节点(Realtime Node):即时摄入实时数据,以及生成Segment数据文件。

历史节点(Historical Node):加载已生成好的数据文件,以供数据查询。

查询节点(Broker Node):对外提供数据查询服务,并同时从实时节点与历史节点查询数据,合并后返回给调用方。

协调节点(Coordinator Node):负责历史节点的数据负载均衡,以及通过规则(Rule)管理数据的生命周期。

集群还包含以下三类外部依赖。

元数据库(Metastore):存储Druid集群的原数据信息,比如Segment的相关信息,一般用MySQL或PostgreSQL。

分布式协调服务(Coordination):为Druid集群提供一致性协调服务的组件,通常为Zookeeper。

数据文件存储库(DeepStorage):存放生成的Segment数据文件,并供历史节点下载。对于单节点集群可以是本地磁盘,而对于分布式集群一般是HDFS或NFS。”

Druid在架构上借鉴了LSM-tree及读写分离的思想,并且通过其基于DataSource与Segment实现的精妙数据文件结构与组织方式,最终提供一个能够在大数据集上做高效实时数据消费与探索的平台。Druid集群在构成上通过不同数据服务的明确分工及协同合作,使得用户可以比较简单地对集群进行部署、分别优化以及运维,大大降低了集群的使用成本。同时,Druid也通过其索引服务使得用户可以比较容易地与Druid集群进行交互,完成任务的管理。


Druid实时大数据分析总结(三)

下一期我们开始安装Druid。。。

展开阅读全文

页面更新:2024-04-14

标签:实时   大数   高效   数据结构   数据源   分布式   节点   集群   架构   灵活   生态   性能   数据库   文件   数据   历史   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top