大数据-149 Apache Druid 基本介绍 技术特点 应用场景

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据-149 Apache Druid 基本介绍 技术特点 应用场景

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

Hadoop(已更完)

HDFS(已更完)

MapReduce(已更完)

Hive(已更完)

Flume(已更完)

Sqoop(已更完)

Zookeeper(已更完)

HBase(已更完)

Redis (已更完)

Kafka(已更完)

Spark(已更完)

Flink(已更完)

ClickHouse(已更完)

Kudu(已更完)

Druid(正在更新…)

章节内容

上节我们完成了如下的内容:


Flink 数据下沉到 Kudu

编写代码测试案例

Druid 介绍

数据分析的基础架构可以分为以下几类:

使用Hadoop、Spark进行分析

将Hadoop、Spark的结果导入到RDBMS中提供数据分析

将结果保存到容量更大的NoSQL数据库中,解决数据分析的存储瓶颈,例如:HBase

将数据源进行流式处理,对接流式计算框架(如Storm、Spark、Flink),结果保存到RDBMS或NoSQL中

将数据源进行流式处理,对接分析数据库,例如:Druid

互联网技术的快速增长催生出了各类大体量的数据,Hadoop很大的贡献在于帮助企业将他们那些低价值的事件流数据转换为高价值的聚合数据。

Hadoop擅长的是存储和获取大规模数据,它并不提供任何性能上的保证它们能够很快的取到数据,虽然Hadoop是高可用的系统,但在高并发下负载下性能会下降。

Hadoop是一个很好的后端、批量处理和数据仓库系统,在一个需要高并发的并且保证查询性能和数据可用性,并需要提供产品级的保证的需求,Hadoop并不能够满足。

Druid是Metamarkets(一家为在线媒体或广告公司提供数据分析服务的公司)退出的一个分布式内存实时分析系统,用于解决如何在大规模数据集下进行快速的、交互式的查询和分析。

Druid是一个开源的数据分析引擎工具,为实时和历史数据的次秒级(多于一秒)查询设计,主要应用于对数据的OLAP查询,Druid提供低延迟(实时)的数据摄取、灵活的数据探索、快速的数据聚合。现在的Druid部署已支持扩展到数万亿时间和PB级数据。

数据摄取层 (Ingestion Layer)

任务管理器 (Supervisor):负责管理数据摄取任务。

数据源 (Data Sources):是 Druid 中的基本概念,用于表示一组数据。

存储层 (Storage Layer)

Druid 使用列式存储来优化查询性能。数据按列存储,以提高聚合和过滤的效率。

Segments:数据在 Druid 中被划分为称为 segments 的块,每个 segment 通常包含一个时间范围内的数据。

查询层 (Query Layer)

Druid 支持多种查询类型,包括实时查询、批量查询和复杂的聚合查询。

查询协调器 (Query Coordinator):负责管理查询请求和将请求分发到不同的节点。

索引层 (Indexing Layer)

Druid 采用一种基于时间的索引策略,支持实时和历史数据的快速查询。

支持多种索引类型,包括基本索引、维度索引和时间索引。

服务层 (Service Layer)

Druid 的架构中包括多个服务,如 Broker、Historical、Middle Manager 等,负责数据的查询和摄取。

Broker:接受查询请求,并将其路由到合适的 Historical 或实时节点。

Historical:存储历史数据并处理查询。

Middle Manager:负责摄取和处理实时数据流。

与OLAP对比

SparkSQL / Impala / ClickHouse,支持海量数据,灵活性强,但对响应时间没有保证,当数据量和计算复杂度增加后,响应时间会变慢,从秒级到分钟级,甚至小时级都有可能。

搜索引擎架构的系统(Elasticsearch等),在入库的时候将数据转换为倒排索引,牺牲了灵活性换了很好性能,在搜索的查询上做到了亚秒级别的响应,但是对于扫描聚合为主的查询,随着处理数据量的增加,响应时间也会退化到分钟级别。

Druid/Kylin,在入库的时候对数据进行预聚合,进一步牺牲灵活性来换取性能,实现对超大数据集的秒级响应。


Kylin利用Hadoop HBase做计算和存储,使用SQL查询,提供JDBC、ODBC驱动与常见的BI工具的集成

Druid有自己独立的分布式集群,能够实时摄入数据,有自己的查询接口(与BI兼容性较弱),通常用于实时要求高的场景

目前没有一个OLAP分析引擎能在数据量、灵活程度、性能、吞吐、并发做到完美,需要基于自己的业务场景进行选择。

技术特点

基本介绍

Apache Druid 是一个开源的、分布式、实时OLAP分析工具,Druid的核心结合了数据仓库、时间序列数据库和搜索系统的思想,适用于多种场景的高性能数据实时分析。Druid将这三个系统中的每个系统的关键特征合并到其接收层、存储格式、查询层和核心体系结构中。


时间序列数据库主要用于处理、带时间标签(按照时间的顺序变化)的数据,带时间标签的数据也称为时间序列数据。


时间序列数据库主要用于电力行业、化工行业等各类实时监测、检查、分析设备所采集、产生的数据,这些工业数据的典型特点是:


产生频率快(每一个监测点一秒钟可内可以产生多条数据)

严重依赖于采集时间(每一条数据均要求对应唯一的时间)

测点多信息大(常规的实时检测系统均有成千上万的监测点,监测点每秒钟都产生数据,每天产生几十GB的数据)。

主要特点

列式存储

Druid独立的存储和压缩每一列,主需要读取特定查询所需的内容,这可以支持快速扫描、排名和聚合。


流式和批量摄取(Ingestion)

支持Apache Kafka、HDFS、AWS S3 等现成的连接器


本地的搜索索引

Druid为字符串创建倒排索引,以支持快速搜索和排序


灵活的Schema

Druid可以处理变化的Schema和嵌套数据


基于时间优化Partition

Druid基于时间智能的对数据进行分区,基于时间的查询比传统数据库要快的多


支持SQL

Druid支持本机的JSON语言,还支持基于HTTP或者JDBC的SQL


水平扩展性

Druid已经用户生产环境中,每秒接收百万个事件,保存多年的数据并提供次秒级查询


操作简单

只需要增加或删除服务器即可扩展或缩小规模,Druid会自动平衡,容错架构通过服务器的故障进行路由。


集成

Druid是开源大数据的技术补充,包括Apache Kafka、Apache Hadoop、Apache Flink等,通常位于存储或处理层与最终应用之间,充当查询层或数据分析服务。

Ingestion(摄取)

Druid支持流式传输和批量社区,Druid连接到数据源,包括:Kafka(用于流数据加载),或分布式文件系统,如HDFS(用于批处理数据加载)。

存储

Druid的数据存储采用列式存储格式,根据列的类型(字符串、数字等),应用不同的压缩和编码方法,根据列类型不同的类型的索引

Druid为字符串列构建倒排索引,以进行快速搜索和过滤,Druid可按时间对数据进行智能分区,以实现面向时间的快速查询。

Druid在摄取数据时对数据进行预聚合,节省大量的存储空间。

查询方式

Druid支持JSON、SQL两种方式查询数据。

应用场景

Druid擅长的部分:


对于大部分查询场景可以亚秒级响应

事件流实时写入与批量数据导入兼备

数据写入前预聚合节省存储空间,提升查询效率

水平扩容能力强

社区活跃

具体的方向有如下:


实时数据分析:对实时数据流(如日志、传感器数据等)进行快速分析和可视化。

商业智能:用于商业分析,支持快速的报告生成和自助式数据探索。

监控和指标分析:适合监控应用程序性能、用户行为分析以及操作指标。

网络分析:处理网络流量数据,以便快速检测异常或进行趋势分析。

复杂事件处理 (CEP):实时处理和分析事件流,帮助企业快速响应市场变化。

机器学习预处理:作为机器学习模型的输入,提供快速的数据摄取和处理能力。

那是否需要Druid呢?


处理时间序列事件

快速的聚合以及探索式分析

近实时的分析 亚秒级响应

存储大量(TB、PB级别)可以预先定义若干维度的事件

无单点问题的数据存储


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
3天前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
3天前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
18 5
|
3天前
|
存储 SQL 分布式计算
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
大数据-162 Apache Kylin 全量增量Cube的构建 Segment 超详细记录 多图
12 3
|
3天前
|
存储 数据采集 监控
大数据技术:开启智能决策与创新服务的新纪元
【10月更文挑战第5天】大数据技术:开启智能决策与创新服务的新纪元
|
3天前
|
Java 大数据 数据库连接
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
9 2
大数据-163 Apache Kylin 全量增量Cube的构建 手动触发合并 JDBC 操作 Scala
|
3天前
|
SQL 分布式计算 NoSQL
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
7 1
大数据-164 Apache Kylin Cube优化 案例1 定义衍生维度与对比 超详细
ly~
|
3天前
|
供应链 搜索推荐 安全
大数据模型的应用
大数据模型在多个领域均有广泛应用。在金融领域,它可用于风险评估与预测、智能营销及反欺诈检测,助力金融机构做出更加精准的决策;在医疗领域,大数据模型能够协助疾病诊断与预测、优化医疗资源管理和加速药物研发;在交通领域,该技术有助于交通流量预测、智能交通管理和物流管理,从而提升整体交通效率;电商领域则借助大数据模型实现商品推荐、库存管理和价格优化,增强用户体验与企业效益;此外,在能源和制造业中,大数据模型的应用范围涵盖从需求预测到设备故障预测等多个方面,全面推动了行业的智能化转型与升级。
ly~
11 2
|
3天前
|
存储 大数据 分布式数据库
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
大数据-165 Apache Kylin Cube优化 案例 2 定义衍生维度及对比 & 聚合组 & RowKeys
9 1
|
3天前
|
存储 数据采集 分布式计算
大数据技术:开启智能时代的新引擎
【10月更文挑战第5天】大数据技术:开启智能时代的新引擎
|
1月前
|
SQL 消息中间件 关系型数据库
Apache Doris Flink Connector 24.0.0 版本正式发布
该版本新增了对 Flink 1.20 的支持,并支持通过 Arrow Flight SQL 高速读取 Doris 中数据。

热门文章

最新文章

推荐镜像

更多