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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 大数据-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 
相关文章
|
27天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
3天前
|
人工智能 Rust Java
10月更文挑战赛火热启动,坚持热爱坚持创作!
开发者社区10月更文挑战,寻找热爱技术内容创作的你,欢迎来创作!
375 16
|
19天前
|
存储 关系型数据库 分布式数据库
GraphRAG:基于PolarDB+通义千问+LangChain的知识图谱+大模型最佳实践
本文介绍了如何使用PolarDB、通义千问和LangChain搭建GraphRAG系统,结合知识图谱和向量检索提升问答质量。通过实例展示了单独使用向量检索和图检索的局限性,并通过图+向量联合搜索增强了问答准确性。PolarDB支持AGE图引擎和pgvector插件,实现图数据和向量数据的统一存储与检索,提升了RAG系统的性能和效果。
|
6天前
|
JSON 自然语言处理 数据管理
阿里云百炼产品月刊【2024年9月】
阿里云百炼产品月刊【2024年9月】,涵盖本月产品和功能发布、活动,应用实践等内容,帮助您快速了解阿里云百炼产品的最新动态。
阿里云百炼产品月刊【2024年9月】
|
21天前
|
人工智能 IDE 程序员
期盼已久!通义灵码 AI 程序员开启邀测,全流程开发仅用几分钟
在云栖大会上,阿里云云原生应用平台负责人丁宇宣布,「通义灵码」完成全面升级,并正式发布 AI 程序员。
|
23天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2596 22
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
5天前
|
存储 人工智能 搜索推荐
数据治理,是时候打破刻板印象了
瓴羊智能数据建设与治理产品Datapin全面升级,可演进扩展的数据架构体系为企业数据治理预留发展空间,推出敏捷版用以解决企业数据量不大但需构建数据的场景问题,基于大模型打造的DataAgent更是为企业用好数据资产提供了便利。
183 2
|
4天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
105 65
|
7天前
|
Linux 虚拟化 开发者
一键将CentOs的yum源更换为国内阿里yum源
一键将CentOs的yum源更换为国内阿里yum源
335 2
|
23天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1580 17
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码