Apache Doris在数仓中的应用实践 - 技术团队
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
评估项目收益
整体在查询效率不变的情况下,生产耗能及存储成本都有较大收益。
Doris环境配置
使用20台BE+3FE的Doris环境 效率、性能表现情况如下:
性能表现情况
支撑数据分析产品数十个以上,整体响应达到ms级。 支持百万、千万级大表关联查询,同时进行维表关联的雪花模型,经过 Colocate Join特性优化,可以实现秒级响应。 日级别,基于商家明细现场计算,同时满足汇总及下钻明细查询,查询 时效基本都可以控制在秒级。 7日趋势分析,2~3秒。
MPP引擎的选型
当前OLAP引擎选择 选型依据 Doris的选择
Doris简介及特点
Doris基于MPP架构的OLAP引擎 整合了Google Mesa、Apache Impala和Apache ORCFile的技术 系统架构:FE和BE两个组件 FE负责查询解析、编译、优化、调 度和元数据管理 BE负责查询执行和数据存储
离线业务分析基于T+1的离线数据 团队需要当日实时数据进行业务监控 通常采 用实时流计算来实现
实时业务监控特点
10、15分钟准实时数据满足分析需要 实时数据与离线数据的比对 事件时间和生产时间的需求 不同业务线的指标需求差异
准实时数仓架构设计
基于Doris的准实时生产数仓 实时Lambda生产架构 实时写入能力支持Kafka To Doris秒级延迟 引擎建设和性能提升 可靠的调度能力 Lambda架构简化 高效的 OLAP交互
Doris的特点
同时支持高并发点查询和高吞吐的Ad-hoc查询 同时支持离线批量导入和实时数据导入 同时支持明细和聚合查询 兼容MySQL协议和标准SQL 支持Rollup Table和Rollup Table的智能查询路由 支持多表Join策略和灵活的表达式查询 支持Schema在线变更 支持Range和Hash二级分区
Байду номын сангаас
业务模型适配
MOLAP:当业务分析维度相对固化,并在可以使用历史状态时,按照时间进行增 量生产,加工成本呈线性增长状态,数据加工到更粗的粒度(如组织单元),减 少结果数据量,提高交互效率。如上图所示,由A模型预计算到B模型,使用 Kylin是一个不错的选择. ROLAP:当业务分析维度灵活多变或者特定到最新的状
准实时DB微批优势
与Storm、Flink中的窗口计算比较 高效的实时数据处理 复用汇总层多维模型 降低运维成本
Join 谓词下推的传递性优化
Doris开源版本默认会对t2表进行全表Scan,导致查询超时。 实现了Join谓词下 推的传递性优化,提高查询性能。 谓词t2.id = 1下推到t2的Scan节点,减少数 据量参与Scan和Join。
运营业务特点
连接商家与用户的送餐服务 劳动密集型业务,上万人的运营团队服务几百万商 家 商圈和其它维度存在变化维的问题 组织机构变化导致历史数据回溯失去参考 意义
数据生产面临的挑战
数据爆炸,每日使用最新维度回溯历史数据 Kylin的MOLAP模式存在问题: 历史数据每日刷新,失去增量的意义 数据计算耗时长,存储需求高,影响SLA稳定性 预计算的历史数据实际使用率低下 不支持明细数据的查询
感谢!
查询执行多实例并发优化
Doris默认每个节点上为每个算子生成1个执行实例。 优化为每个节点生成多个 执行实例,充分利用集群资源。 并发度设置为5,提升查询性能3到5倍。
Colocate Join
Colocate Join将两表数据按Join Key Shard提前,减少网络传输。 关键实现点 包括数据本地性、查询调度、数据Balance、Hash Join粒度等。 提高Join性能 ,减少数据传输成本。
Bitmap 精确去重
Doris新增Bitmap聚合指标,减少资源消耗。 使用Bitmap后,PV计算过程大幅简 化,减少资源占用。 提高查询性能,不再线性增加资源随数据规模。
业务实践与数据引擎
运营分析的复杂性与不同应用场景 数据引擎技术的重要性与发展
Doris引擎与ROLAP模式
Doris引擎在处理汇总与明细数据方面的优势 处理变化维的历史回溯能力 非预设维的灵活应用 准实时的批处理应用
性能影响因素
查询性能受集群规模影响,数据量较大时,调动的集群资源较多。 MPP的并发性能受限于集群的性能。 需要根据业务并发性质控制查询时效。
Doris高可靠性
通过一年来的应用以及Doris的不断改进升级,Doris的高可靠、高可用 、高可扩展性得到进一步验证,服务稳定可靠。
准实时场景下的应用
MPP引擎介绍
MPP引擎具备强大的并行计算能力。 支持高吞吐、低时延计算,适用于大规模数 据处理。 应用层模型复杂,需要进行多次模型预处理。 Kylin配置繁琐,需要 平衡计算成本与查询效率。 不支持明细数据的查询,增加了运维成本。
ROLAP模式的优势
应用层模型设计简化,降低复杂度。 通过视图封装业务表达,提高灵活性,降低冗余。 支持“汇总+明细”应用场景,降低生产成本。
Apache Doris在数仓中的应用实践 技术团队
数据仓库技术团队
序言
数据仓库技术团队的职责 引入Apache Doris引擎的优化生产方案 分析Kylin的 MOLAP与Doris引擎的ROLAP模式
数仓交互层引擎的应用现状
互联网业务规模的增大 构建数据仓库基于Hadoop/Spark技术 使用DBMS和MOLAP引擎进行数据查询
技术权衡
MOLAP:通过预计算,提供稳定的切片数据,实现多次查询一次计算,减轻了查 询时的计算压力,保证了查询的稳定性,是“空间换时间”的最佳路径。实现了 基于Bitmap的去重算法,支持在不同维度下去重指标的实时统计,效率较高. ROLAP:基于实时的大规模并行计算,对集群的要求较高。MPP引擎的核心是通过
汇总数据的交互
业务团队使用Kylin作为MOLAP引擎 MOLAP适用于预计算生产,但在变化维度下成本高 需要重新计算历史数据,影响效率和成本 非预设维度分析需要适配计算和迭代工作
明细数据的交互
明细数据查询使用MySQL等关系型DB 性能瓶颈和高运维成本是挑战 大数据同步、新增字段、历史数据更新成本高
Kylin与MOLAP模式
Kylin引擎在处理增量业务分析的作用 固化维度场景中的预计算优势
数仓实践
团队成功实践Doris引擎 更多团队了解和采用Doris方案的趋势 引擎性能的持续提升 Doris引擎替代Kylin、Druid、ES等引擎的趋势
未来数据库技术展望
数据库技术的飞速进步 柏睿数据发布的RapidsDB v4.0 数据仓库分层管理与应用支撑效率的改善 数据的变得“定义即可见” 提升数据的价值