Apache Doris 在美团外卖数仓中的应用实践
也需要一定的 迭代工作。 明细数据的交互 业务分析除了宏观数据之外,对明细数据查询也是一种刚需。通常大家会选择MySQL等关系型DB 作为明细数据的快速检索查询,但当业务成长较快时,很快就会遇到性能瓶颈,并且运维成本也 很高。例如,大数据量的同步、新增字段、历史数据更新等操作,它们的维护成本都非常高。 外卖运营业务特点 美团的使命是“帮大家吃得更好,生活更好”。外卖业务为大家提供送餐服务,连接商家与用户, 数据处理能力有限,所以ROLAP模式受到很大的局限性。随着分布式、并行化技术成熟应用,MP P引擎逐渐表现出强大的高吞吐、低时延计算能力,号称“亿级秒开”的引擎不在少数,ROLAP模式 可以得到更好的延伸。单从业务实际应用考虑,性能在千万量级关联查询现场计算秒开的情况下 ,已经可以覆盖到很多应用场景,具备应用的可能性。例如:日数据量的ROLAP现场计算,周、 月趋势的计算,以及明细数据的浏览都可以较好的应对。 以20台BE+3FE的Doris环境,效率、性能表现情况如下: 支撑数据分析产品数十个以上,整体响应达到ms级。 支持百万、千万级大表关联查询,同时进行维表关联的雪花模型,经过Colocate Join特性优化,可以实现秒级响应。 日级别,基于商家明细现场计算,同时满足汇总及下钻明细查询,查询时效基本都可以控 制在秒级。 7日趋势分析,2~3秒。由于数据量较大,根据集群规模不同查询性能有所区别,但数据量 较大时,0 码力 | 8 页 | 429.42 KB | 1 年前3SelectDB案例 从 ClickHouse 到 Apache Doris
实现进一步的聚合,减轻了 Doris 和 ES 的更新压力)。 加速层:该层主要将大宽表拆为小宽表,根据更新频率配置不同的分区策略,减小 数据冗余带来的存储压力,提高查询吞吐量。Doris 具备多表查询和联邦查询性能 特性,可以利用多表关联特性实现组合查询。 应用层:DataSet 统一指向 Doris,Doris 支持外表查询,利用该特性可对 ES 引擎 直接查询。 架构 2.0 存在的问题: 部分更新:因每个 Source 表由各自 ETL 任务产出对应的数据,其产出时间不一致, 并且每个表只涉及部分指标或标签,不同数据查询对时效性要求也不同,因此架构 需要支持部分列更新。 性能高效:具备高效的写入能力,且在圈选、洞察、报表等场景可以实现秒级响应。 控制成本:在满足业务需求的前提下,最大程度地降低成本;支持冷热数据精细化 管理,支持标签灵活上下架。 数据导入方案 标签名称作为列名,则无法满 足上述标签或指标更名的需求。而对于上下架标签的需求,如果直接以 drop/add column 的方式实现,则会涉及数据文件的更改,该操作耗时耗力,甚至会影响线上查询的性能。 那么,有没有更轻量级的方式来满足需求呢?接下来将为大家分享相关解决方案及收益: 为了实现少量标签、指标名称修改,我们用 MySQL 表存储相应的元数据,包括名 称、全局唯一的 ID 和上下架状态等信息,比如标签歌曲名称0 码力 | 12 页 | 1.55 MB | 1 年前3Doris的数据导入机制以及原子性保证
01 Doris简介 导入的问题 02 03 Doris中的导入 使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • 由百度自研,2017年开源,2018年贡献给Apache社区后更名为 Apache Doris 系统定位 频率从天级提升至分钟级 2008 • 进行了通用化改造,开始承 接公司内部其他报表系统 • 助力百度统计成为国内最大 的中文网站分析工具 2009 • 随百度业务飞速发展,对 Doris的性能、可用性、拓 展性进行了全面升级 • 承担百度所有统计报表业务 2012 01 Doris简介 04 05 06 • 全新的数据模型,查询存储 效率大幅提升 • MPP框架,支持分布式计算 100+,一线互 联网广泛使用 2018 07 01 Doris简介 产品特性 简单易用 扩展性强 性能卓越 高可用 • 高度兼容MySQL • 支持在线表结构变更 • 支持集群动态伸缩 • 高度集成,不依赖于外部存储系统 • 架构优雅,单集群可水平扩展至200台以上 • 查询性能业界领先 • 高并发查询,100台集群可达10w QPS • 流式导入单节点100MB/s,小批量导入毫0 码力 | 33 页 | 21.95 MB | 1 年前3百度智能云 Apache Doris 文档
)。默认的过滤阈值为 1,即素有错误行都可以被 忽略。 对于有要求数据不能够被过滤的业务场景,可以通过设置 会话变量 为 来确保当有数据被过滤掉的 时候, 不会被执行成功。 5. 性能问题 不见使用 方式进行单行的插入。如果必须这样使用,请将多行数据合并到一个 INSERT 语句中进行批量提交。 ROUTINE-LOAD ROUTINE LOAD ROUTINE LOAD 10 分钟。从任务提交开始算起。如果在超时时间内没有完成,则任务会失败。 9. 数据量和任务数限制 Stream Load 适合导入几个GB以内的数据,因为数据为单线程传输处理,因此导入过大的数据性能得不到保证。当有大量 本地数据需要导入时,可以并行提交多个导入任务。 Doris 同时会限制集群内同时运行的导入任务数量,通常在 10-20 个不等。之后提交的导入作业会被拒绝。 ALTER-ROUTINE-LOAD Client 对外部数据源进行连接和查询。所以 要求外部数据源和 Compute Node 节点网络是双向连通的。 同时,Doris 查询外部表并不是分布式查询,而是单 Client 方式连接查询。所以性能效率上要远低于查询 Doris 自身存储的 表。外部表比较适用的场景式一些频繁更新的维度表和 Doris 中存储的事实表进行关联查询。或者通过 的方式从外部数据源同步数据到 Doris 中。0 码力 | 203 页 | 1.75 MB | 1 年前3
共 4 条
- 1