Apache Doris 在美团外卖数仓中的应用实践业务分析除了宏观数据之外,对明细数据查询也是一种刚需。通常大家会选择MySQL等关系型DB 作为明细数据的快速检索查询,但当业务成长较快时,很快就会遇到性能瓶颈,并且运维成本也 很高。例如,大数据量的同步、新增字段、历史数据更新等操作,它们的维护成本都非常高。 外卖运营业务特点 美团的使命是“帮大家吃得更好,生活更好”。外卖业务为大家提供送餐服务,连接商家与用户, 这是一个劳动密集型的业务,外卖 2. Kylin配置过程繁琐,需要配置模型设计,并配合适当的“剪枝”策略,以实现计算成本与查 询效率的平衡。 3. 由于MOLAP不支持明细数据的查询,在“汇总+明细”的应用场景中,明细数据需要同步到 DBMS引擎来响应交互,增加了生产的运维成本。 4. 较多的预处理伴随着较高的生产成本。 ROLAP模式的优势 1. 应用层模型设计简化,将数据固定在一个稳定的数据粒度即可。比如商家粒度的星形模型 可以简化模型设计,减少预计算的代价,并通过强大的实时计算能力,可以支撑良好的实时交互 体验。 双引擎下的应用场景适配问题 架构上通过MOLAP+ROLAP双引擎模式来适配不同应用场景,如下图所示: 技术权衡 MOLAP :通过预计算,提供稳定的切片数据,实现多次查询一次计算,减轻了查询时的计算压力,保证 了查询的稳定性,是“空间换时间”的最佳路径。实现了基于Bitmap的去重算法,支持在不同维度 下去重指标的实时统计,效率较高。0 码力 | 8 页 | 429.42 KB | 1 年前3
Doris的数据导入机制以及原子性保证使用案例 04 Doris简介 01 • 基于MPP(大规模并行处理)架构的分析型数据库 01 Doris简介 • 性能卓越,PB级别数据毫秒/秒级响应 • 适用于高并发、低延时下的多维分析、实时报表等场景 • 由百度自研,2017年开源,2018年贡献给Apache社区后更名为 Apache Doris 系统定位 • 百度内部统称其为“百度数据仓库Palo”,同时百度云上提供Palo的企业级托管版本 Doris 简介 导入的问题 02 典型应用场景——OLAP分析 数据源 数据应用 数据存储 对象存储BOS OLTP WEB端日志 移动端日志 本地文件 数据分析 业务应用 实时大屏 多维报表 自助查询 用户画像 Doris 02 导入的问题 Vn Vn Vn Vn V1-Vn-1 02 导入的问题 • 部分数据丢失,产生脏数据 • 数据重复 数据完整性问题 文本、PARQUET、ORC 04 使用案例 导入方式 04 使用案例 导入方式 同步/异步 场景 接口 Broker Load 异步 HDFS、BOS对象存储 MySQL Routine Load 异步 Kafka MySQL Stream load 同步 本地文件,数据流 HTTP Insert into 同步 命令行 MySQL Spark Load 异步 Spark MySQL 最佳实践0 码力 | 33 页 | 21.95 MB | 1 年前3
SelectDB案例 从 ClickHouse 到 Apache Doris 导入方式多样,支持从 HDFS/S3 等远端存储批量导入,也支持读取 MySQL Binlog 以及订阅消息队列 Kafka 中的数据,还可以通过 Flink Connector 实时/批次同步数 据源(MySQL,Oracle,PostgreSQL 等)到 Doris。**** 社区目前 Apache Doris 社区活跃、技术交流更多,SelectDB 针对社区有专职的技 术支持团队,在使用过程中遇到问题均能快速得到响应解决。 同时我们也利用 Doris 的特性,解决了架构 1.0 中较为突出的问题。 数仓层:Apache Doris 的 Aggregate 数据模型可支持部分列实时更新,因此我们去 掉了 DWM 集市层的构建,直接增量到 Doris / ES 中构建宽表,解决了架构 1.0 中 上游数据更新延迟导致整个宽表延迟的问题,进而提升了数据的时效性。数据(指 标、标签等)通过 标的最大基数达到了 2 亿+。我们希望将这些数据从 TDW 加速到 Doris 中完成标签画像 和指标的分析。从业务的角度,需要满足以下要求: 实时可用:标签/指标导入以后,需实现数据尽快可用。不仅要支持常规离线导入 T+1 ,同时也要支持实时打标场景。 部分更新:因每个 Source 表由各自 ETL 任务产出对应的数据,其产出时间不一致, 并且每个表只涉及部分指标或标签,不同数据查询对时效性要求也不同,因此架构0 码力 | 12 页 | 1.55 MB | 1 年前3
百度智能云 Apache Doris 文档12 4. 向 表中导入一个查询语句结果,并指定 partition 和 label Keywords Keywords 最佳实践 最佳实践 1. 查看返回结果 INSERT 操作是一个同步操作,返回结果即表示操作结束。用户需要根据返回结果的不同,进行对应的处理。 1. 执行成功,结果集为空 如果 insert 对应 select 语句的结果集为空,则返回如下: 表示执行成功。 同时处于安全性考虑,如果该路径已存在同名的文件,则也会导出失败。 Doris 不会管理导出到本地的文件,也不会检查磁盘空间等。这些文件需要用户自行管理,如清理等。 4. 结果完整性保证 该命令是一个同步命令,因此有可能在执行过程中任务连接断开了,从而无法活着导出的数据是否正常结束,或是否完整。 此时可以使用 参数要求任务成功后,在目录下生成一个成功文件标识。用户可以通过这个文件,来判 断导出是否正常结束。 列的 Unique Key 模型表中 Keywords Keywords 最佳实践 最佳实践 1. 查看导入任务状态 Stream Load 是一个同步导入过程,语句执行成功即代表数据导入成功。导入的执行结果会通过 HTTP 返回值同步返回。并 以 Json 格式展示。示例如下: category, author, price category, author, price curl0 码力 | 203 页 | 1.75 MB | 1 年前3
共 4 条
- 1













