Doris–基础–1.2–理论–OLTP、OLAP,HTAP
1、概念
- OLTP(On-Line Transaction Processing):联机事务处理
- OLAP(On-Line Analytical Processing):联机分析处理
- HTAP(Hybrid Transactional(混合事务)/Analytical Processing):混合事务分析处理
1.1、OLTP
-
操作型处理,主要目标是做数据处理,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。
-
用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。
-
OLTP示例:传统的关系型数据库系统(RDBMS),主要用于操作型处理。
1.2、OLAP
- 分析型处理,主要目标是做数据分析。
- 一般针对某些主题的历史数据进行复杂的多维分析,支持管理决策。
- OLAP示例:数据仓库,主要用于数据分析。
1.3、HTAP
- 基于创新的计算存储框架
- HTAP 数据库能够在一份数据上同时支撑业务系统运行和 OLAP 场景,避免在传统架构中,在线与离线数据库之间大量的数据交互。
- 基于分布式架构,支持弹性扩容,可按需扩展吞吐或存储,轻松应对高并发、海量数据场景。
- HTAP示例
- PingCAP 的 TiDB(是国内首家开源的 HTAP 分布式数据库)
- 阿里云的 HybridDB for MySQL
- 百度的 BaikalDB
2、OLTP、OLAP对比
2.1、补充–查询对比
- OLTP的查询:一般只会访问少量的记录,且大多时候都会利用索引。比如最常见的基于主键的 CRUD 操作
- OLAP的查询:一般需要 Scan 大量数据,大多时候只访问部分列,聚合的需求(Sum,Count,Max,Min 等)会多于明细的需求(查询原始的明细数据)
3、OLAP引擎分类
3.1、分类
按数据存储格式划分如下
- MOLAP(Multi-dimensional OLAP)
- ROLAP(Relational OLAP)
- HOLAP(Hybrid OLAP)。
3.1.1、MOLAP
- 基于多维数组的存储模型,也是OLAP最初的形态
- 通过预计算,提供稳定的切片数据,实现多次查询一次计算,减轻了查询时的计算压力,保证了查询的稳定性,是"空间换时间"的最佳路径。实现了基于Bitmap的去重算法,支持在不同维度下去重指标的实时统计,效率较高。
- 开源产品:Kylin、Druid
3.1.2、ROLAP
- 完全基于关系模型进行存储数据,不需要预计算,按需即时查询。明细和汇总数据都保存在关系型数据库事实表中。
- 基于实时的大规模并行计算,对集群的要求较高。MPP引擎的核心是通过将数据分散,以实现CPU、IO、内存资源的分布,来提升并行计算能力。在当前数据存储以磁盘为主的情况下,数据Scan需要的较大的磁盘IO,以及并行导致的高CPU,仍然是资源的短板。因此,高频的大规模汇总统计,并发能力将面临较大挑战,这取决于集群硬件方面的并行计算能力。传统去重算法需要大量计算资源,实时的大规模去重指标对CPU、内存都是一个巨大挑战。目前Doris最新版本已经支持Bitmap算法,配合预计算可以很好地解决去重应用场景。
3.1.3、HOLAP
- 混合模型,细节数据以ROLAP存放,聚合数据以MOLAP存放。
- 这种方式相对灵活,且更加高效。
3.2、OLAP引擎对比
3.2.1、小结
- 数据压缩率Clickhouse好
- ClickHouse单表查询性能优势巨大
- Join查询两者各有优劣,数据量小情况下Clickhouse好,数据量大Doris好
- Doris对SQL支持情况要好
3.3、MOLAP模式 和 ROLAP模式 对比
3.3.1、MOLAP模式的劣势(以Kylin为例)
- 应用层模型复杂,根据业务需要以及Kylin生产需要,还要做较多模型预处理。这样在不同的业务场景中,模型的利用率也比较低。
- 由于MOLAP不支持明细数据的查询,在"汇总+明细"的应用场景中,明细数据需要同步到DBMS引擎来响应交互,增加了生产的运维成本。
- 较多的预处理伴随着较高的生产成本。
3.3.2、ROLAP模式的优势
- 应用层模型设计简化,将数据固定在一个稳定的数据粒度即可。比如商家粒度的星形模型,同时复用率也比较高。
- App层的业务表达可以通过视图进行封装,减少了数据冗余,同时提高了应用的灵活性,降低了运维成本。
- 同时支持"汇总+明细"。
- 模型轻量标准化,极大的降低了生产成本。
3.3.3、小结
- 综上所述,在变化维、非预设维、细粒度统计的应用场景下,使用MPP引擎驱动的ROLAP模式,可以简化模型设计,减少预计算的代价,并通过强大的实时计算能力,可以支撑良好的实时交互体验。
- doris是一个ROLAP引擎,可以满足:灵活多维分析、明细+聚合、主键更新