基于 Apache Doris 的有道精品课数据中台建设实践丨开源案例库

本文旨在向大家分享有道精品课数据中台的架构演进过程,以及 Doris 作为一个 MPP 分析型数据库是如何为不断增长的业务体量提供有效支撑并进行数据赋能的。内容分享逻辑首先从 实时数仓选型的经验 为切入点,进一步着重分享使用 Doris 过程中遇到的问题以及 Doris 技术团队针对这些问题所做出的调整和优化。

1、背景

1.1 业务场景

根据业务需求,目前有道精品课的数据层架构上可分为离线和实时两部分。

离线系统主要处理埋点相关数据,采用批处理的方式定时计算。

而实时流数据主要来源于各个业务系统实时产生的数据流以及数据库的变更日志,需要考虑数据的准确性、实时性和时序特征,处理过程非常复杂。

有道精品课数据中台团队依托于其实时计算能力在整个数据架构中主要承担了实时数据处理的角色,同时为下游离线数仓提供实时数据同步服务。

数据中台主要服务的用户角色和对应的数据需求如下:

  • 运营/策略/负责人主要查看学生的整体情况,查询数据中台的一些课程维度实时聚合数据

  • 辅导/销售主要关注所服务学生的各种实时明细数据

  • 品控主要查看课程/老师/辅导各维度整体数据,通过T+1的离线报表进行查看

  • 数据分析师对数据中台T+1同步到离线数仓的数据进行交互式分析

1.2 数据中台前期系统架构及业务痛点

如上图所示,在数据中台 1.0 架构中我们的实时数据存储主要依托于 Elasticsearch,遇到了以下几个问题:

  1. 聚合查询效率不高

  2. 数据压缩空间低

  3. 不支持多索引的join,在业务设计上我们只能设置很多大宽表来解决问题

  4. 不支持标准SQL,查询成本较高

2、实时数仓选型

基于上面的业务痛点,我们开始对实时数仓进行调研。当时调研了 Doris, ClickHouse,  TiDB+TiFlash, Druid, Kylin。

OLAP 引擎

优势

劣势

Doris

1.   兼容 MySQL 协议

2.   支持 Online Schema Change

3.   支持更新

4.   集群扩缩容自动化

5.   支持基于时间分区,冷热数据分离

1.   开源较晚,目前还在孵化中

ClickHouse

1.   单机性能强劲

2.   向量化引擎

3.   数据压缩空间大

1.   不支持标准 SQL

2.   集群扩缩容不能自动 Rebalance

3.   对更新支持不好

4.   运维成本较高

TiDB+TiFlash

1.   兼容 MySQL 协议

2.   向量化引擎

3.   业务数据和分析数据同步方便 ( 内部 Raft 同步 )

1. TiFlash 不开源

2.   落地公司较少

3.   架构主要面向 TP 场景

Druid

1.   基于时间分区,聚合数据查询较快

2.   支持冷热数据分离

1.   不支持明细数据存储

2.   不支持标准 SQL

Kylin

1.   支持标准 SQL 查询

2.   支持预聚合

3.   社区发展较好

1.   依赖较多

2.   明细查询支持较弱

3.   资源消耗较多

InfoQ
我还没有学会写个人说明!
上一篇

游族董事长被投毒原因曝光:或因人事调整

你也可能喜欢

评论已经被关闭。

插入图片