Apache Doris 是一个基于MPP(大规模并行处理)架构的高性能、实时的分析型数据库。它以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。以下是关于 Apache Doris 的应用场景:
1、报表分析:Doris可以快速生成各种报表,适用于企业的经营分析决策、日志分析、用户行为洞察等场景;
2、即席查询:由于其高效的查询性能,Doris适用于需要即席查询的场景,如临时的数据分析需求;
3、统一数仓构建:Doris可以作为企业统一数仓的核心组件,支持复杂的查询和数据整合需求;
4、数据湖联邦查询加速:Doris支持与位于Apache Hive、Apache Iceberg等平台的外部表联合查询,加速数据湖中的联邦查询;
5、用户行为分析和AB实验平台:用户可以基于Doris构建用户行为分析系统和AB实验平台,以优化产品和服务;
6、实时数据分析:Doris在实时数据分析领域表现优异,适用于需要实时处理和分析大量数据的业务场景,如监控系统、实时用户行为分析等;
7、OLAP(在线分析处理):Doris支持复杂的OLAP查询,能够处理大规模数据集,提供快速的多维分析和报告生成;
8、ETL处理:Doris支持从各种数据源快速导入数据,并进行清理、聚合和分析;
9、故障排查和安全监控:通过Doris分析日志数据,可以帮助快速排查系统故障和进行安全监控;
Apache Doris 实现即席查询提速 20 倍案例分享
MOKA 主要有两大业务线 MOKA 招聘(智能化招聘管理系统)和 MOKA People(智能化人力资源管理系统),MOKA BI 通过全方位数据统计和可灵活配置的实时报表,赋能于智能化招聘管理系统和人力资源管理系统。为了提供更完备的数据支持,助力企业提升招聘竞争力,MOKA 与飞轮科技合作引入了性能强悍的 Apache Doris 对早期架构进行升级转型,成就了 Moka BI 强大的性能与优秀的用户体验。
现状与问题
Moka BI 数仓早期架构是类 Lambda 架构,实时处理和离线处理并存:
实时部分数据主要来源为结构化的数据,Canal 采集 MySQL 或 DBLE(基于 MySQL 的分布式中间件)的 Binlog 输出至 Kafka 中;未建模的数据按照公司分库,存储在业务 DBLE 中,通过 Flink 进行实时建模,将计算后的数据实时写入业务 DBLE 库,通过 DBLE 提供报表即席查询能力,支持数据大屏和实时报表统计。
离线部分涵盖了实时部分数据,其结构化数据来源于 DBLE 的 Binlog,明细数据在 Hbase 中实时更新,并映射成 Hive 表,非结构化数据通过 ETL 流程,存储至 Hive 中,通过 Spark 进行进行离线部分建模计算,离线数仓 ADS 层数据输出至 MySQL 和 Redis 支持离线报表统计,明细数据又为指标预测和搜索等外部应用提供数据支持。
在早期数仓架构中,为了实现实时建模以及实时报表即席查询功能,就必须要求底层数据库能够承载业务数据的频繁插入、更新及删除操作,并要求支持标准 SQL,因此当时 MOKA 选择 DBLE 作为数据存储、建模、查询的底层库。早期 Moka BI 灰度期用户较少,业务数据量以及报表的使用量都比较低,DBLE 尚能满足业务需求,但随着 Moka BI 逐渐面向所有用户开放,DBLE 逐渐无法适应 BI 报表的即席查询分析性能要求,同时实时与离线架构分离、存储成本高且数据不易维护,亟需进行升级转型。
解决方案:新版架构的实现
在引入 Doris 之后,Moka BI 数仓架构的主要变化是将 OLAP 和 OLTP 进行分离,即使用 DBLE 支持数据的实时建模,数据来源于 Moka 系统的业务数据,包含了结构化和半结构化的数据,通过 Flink 读取 DBLE Binlog,完成数据去重、合并后写入 Kafka,Doris 通过 Routine Load 读取 Kafka 完成数据写入,此时 DBLE 仅作为数据建模合成使用,由 Doris 提供报表即席查询能力。
基于 Doris 列存储、高并发、高性能等特性,Moka BI 报表采用自助方式构建完成,支撑客户根据需求灵活配置行、列、筛选的场景。与传统报表按需求定制开发方式对比,这种自助式报表构建非常灵活,平台开发与需求开发完全独立,需求完成速度得到极大的提升。
新架构的收益:
引入 Apache Doris 改造了新的数据仓库之后,满足了日益增长的分析需求以及对数据实时性的要求,总体收益包含以下几点:
1、高性能数据即席查询: Doris 基于列存储技术,能够快速处理大量的数据,并支持高并发的在线即席查询,解决了关系型数据库无法支持的复杂查询问题,复杂 SQL 查询的速度上升了一个数据量级;
2、数据仓库 的可扩展性: Doris 采用分布式集群架构,可以通过增加节点来线性提升存储和查询瓶颈,打破了关系型数据库数据单点限制问题,查询性能得以显著提升;
3、更广泛的应用: 基于 Doris 构建了统一的数据查询平台,应用不再局限于报表服务,对于离线的即席查询也有很好的支撑,可以说 Doris 的引入是构建数仓一体化的前奏;
4、实现自助式分析: 基于 Doris 强大的查询能力,MOKA 引入了全新的报表构建方式,通过用户自助构建报表方式,能够快速满足用户的各种灵活需求。