doris引擎介绍

背景:

在目前的MPPOLAP系统众多,比如Greenplum、Apache Impala、Presto、Doris、ClickHouse、Druid、TiDB等等,druid 虽然在不设置roll up 的情况下支持明细数据。但数据join 和性能都比较差。clickhouse 虽然在支持明细和汇总数据查询,但在集群扩展和数据join 的方面也比较弱。基于上面几个方面Doris 在兼容roll_up 的形式,也兼容了明细数据的join 查询。在数据应用方面有很大市场。

介绍:

Doris是基于MPP架构的OLAP引擎,主要整合了Google Mesa(数据模型)、Apache Impala(MPP Query Engine)和Apache ORCFile (存储格式,编码和压缩))的技术。
Doris的系统架构如下,主要分为FE和BE两个组件,FE主要负责查询的解析、编译、优化、调度和元数据管理;BE主要负责查询的执行和数据存储。关于Doris的更多技术细节,可参考其官方文档。原理和应用todo:

1、doris 的优势:
首先,Doris基于Google Mesa的数据模型,同时支持聚合和明细数据的表模型,结合rollup和物化视图的加速能力,使得我们在建模的时候比较灵活,可以把常用的查询模式以预计算的方式物化下来,提高查询速度,同时对于一些偏AdHoc的场景,基于明细数据的现场计算提供了较强的灵活性。

其次,Doris采用了Impala的MPP架构,这样能够很好的支持多表关联的场景,能够支持优选的电商、交易等复杂的多表关系模型。
最后,Doris能够同时满足离线和基于微批次的准实时数据导入,这不仅能够给我们提供多种数据时效性支持的选择,也可以在准实时场景使用D2D替代FlinkAPI计算,显著提升研发效率。

2、doris 的优化手段
1)、数据量太多的问题在HIVE进行预聚合,提升查询性能。
2)、模型设计问题我们在非精确场景使用HLL替代BIMAP的方案或优化索引提升查询命中率等手段提升查询性能。
3)、针对(多张表关联的场景(超过5张))SQL大查询的问题我们采用模型适度冗余维度的方案,减少查询数据表的数量,提升查询性能。
4):其他方面:并发太高的问题我们通过减少无效查询、页面懒加载、ETL错峰执行、服务层加缓存等手段进行优化。

### Doris 数据库概述 #### 什么是 Apache Doris? Apache Doris 是一款现代化的大规模并行处理 (MPP) 数据库,专为实时分析和报表查询而设计[^1]。该系统采用分布式存储和计算架构,能够高效处理结构化数据,在秒级或毫秒级别内返回查询结果。 #### 特点 - **分布式架构**:通过分布式的存储与计算能力来支持大规模的数据集以及高并发访问请求。 - **快速响应**:对于大多数查询操作能够在极短的时间内给出答案,适合于需要即时反馈的应用环境。 - **易于扩展**:可以根据业务增长灵活调整集群大小而不影响现有服务性能。 - **列式存储优化**:作为分布式列式存储引擎的一部分,特别擅长应对读多写少的工作负载模式下的复杂查询需求。 - **兼容SQL标准语法**:提供完整的 SQL 支持,使得开发者可以轻松编写复杂的聚合、连接等类型的查询语句[^2]。 #### 应用场景 - **实时数据分析平台**:当企业希望构建一套能迅速反映最新业务动态变化的信息展示板时,可以选择利用 Apache Doris 来实现高效的在线分析处理(OLAP)。 - **广告投放效果评估**:帮助营销团队及时获取用户行为特征及其转化路径等相关指标的变化情况,从而更好地指导后续策略制定工作。 - **物联网设备监控管理**:针对海量传感器产生的连续流式记录进行周期性的统计汇总,并触发预警通知给相关人员以便采取相应措施。 ```sql SELECT device_id, COUNT(*) AS event_count FROM iot_events WHERE timestamp >= NOW() - INTERVAL '1' HOUR GROUP BY device_id; ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值