【数据仓库】Doris中的三种模型

明细模型(Duplication Model)

每条数据都会被完整地存储,不进行任何聚合操作。适用于需要保存完整数据的场景,例如日志数据、事件数据等。在存储时,数据按照导入的顺序存储,不做去重处理。

本模型的优点在于:所有的输入数据都被存储,保留了数据的完整性和原始性;而且适用于多种查询类型,不需要预先定义聚合逻辑。但是也有占用存储空间大,查询效率低的缺点。

聚合模型(Aggregation Model)

聚合模型适用于需要对数据进行预聚合的场景。通过在写入时进行预聚合,可以大大减少查询时的计算量,提高查询性能。支持SUM、MIN、MAX、REPLACE、HLL等多种聚合函数。

模型优点在于占用存储空间小,因为数据已经经过预先聚合,大幅减少了数据量,而由此该模型也具备较高的查询效率。同样的,聚合的需求也造成模型灵活性低,需要预先定义聚合逻辑,后续修改较为复杂。以及由于数据被聚合,而导致数据精度的损失的缺点。

主键模型(Unique Key Model)

主键模型适用于需要对数据进行更新和删除操作的场景。通过主键来唯一标识每条记录,可以实现对数据的高效更新。由于主键一定是无重复的,所以在该模型中,数据会根据主键去重,最后插入的数据会覆盖相同主键的旧数据。本模型适用于需要根据唯一标识进行更新的场景,例如用户信息表、订单表等。

主键模型的优势是更新方便,它支持根据主键进行数据更新,适用于需要频繁更新的场景。而且由于模型通过主键去重,避免了重复数据的存储,存储效率高。缺陷是同一主键的旧数据会被新数据覆盖,无法保留历史版本。