货拉拉基于DORIS的OLAP体系演进及建设方法
背景介绍
货拉拉平台拥有庞大的用户和司机规模,大数据平台支撑着多个业务线,包括基础层、接入层、平台层、服务层和应用层。平台通过数据仓库、数据湖等方式进行数据存储和分析。
OLAP体系演进(上)
OLAP演进简介
货拉拉OLAP体系经历了三个阶段:
- OLAP 1.0(孕育期):使用Druid引擎,支持实时分析、诊断和策略复盘。
- OLAP 2.0(完善期):使用ClickHouse引擎,支持单表明细查询和聚合分析。
- OLAP 3.0(成熟期):使用Doris引擎,支持多数据源关联分析和实时数仓。
OLAP 1.0 - 业务场景与需求分析
业务场景:存在MySQL存储瓶颈、开发成本高、部分聚合需求不支持等问题。
需求分析:需要可横向扩容、自由组合维度分析、支持任意时间跨度分析。
OLAP 1.0 - 解决思路与POC验证
解决思路:进行技术调研、POC验证和稳定性保障。
POC验证:验证语法功能、性能和数据准确性。
稳定性保障:事前预防、事中处理和事后整改。
OLAP 1.0 - 上生产与问题总结
上生产:MySQL链路下线,业务数据接入Druid。
问题总结:实时数据乱序、StringLast函数结果值不稳定、无高效的精准去重函数。
OLAP体系演进(下)
OLAP 2.0 - 业务需求分析
业务需求:实时写入吞吐高、支持Map和Json格式数据、支持复杂数据结构、支持明细查询和统计分析。
OLAP 3.0 - 需求分析
需求分析:AB-Test和多表关联场景需求强烈,支持实时数仓和任意时间跨度聚合分析。
OLAP 3.0 - 解决思路与技术调研
解决思路:复用1.0的解决思路,进行技术调研和POC验证。
技术调研:Doris和ClickHouse在数据导入延迟、语义支持、多维分析、SQL支持、明细查询、JOIN支持、复杂数据类型、集群成本、扩展性和可运维性方面进行对比。
OLAP 3.0 - POC与稳定性保障
POC验证:进行功能验证、性能验证和数据质量验证。
稳定性保障:事前预防、事中处理和事后整改。
OLAP 3.0 - 问题总结与参数优化
问题总结:查询性能优化和UnhealthyTablet不下降问题。
参数优化:调整多个配置项以提升性能和稳定性。
OLAP 3.0 - 数据流
Doris逐步替换Druid,以Doris为主引擎、ClickHouse为辅内核。
总结思考与后续规划
总结与思考
总结:从业务需求出发匹配合适引擎,摸索出较完善的上线流程及稳定性保障体系方案。
思考:没有单种引擎能高效支持各种场景,需要根据需求特点选取合适的引擎。
后续规划
OLAP平台化:自助化建模、多引擎路由、支持各类聚合、明细、关联等场景。
高效:支持更多业务场景,提升开发、决策效率,降本增效。
稳定:深入内核原理,提供二次开发支持,完善监控告警体系。
演进:Doris逐步替换Druid,以Doris为主引擎、ClickHouse为辅内核。