Apache Doris是一个用于离线数据仓库开发的分布式SQL查询和分析引擎。在使用Doris进行离线数据仓库开发时,可以采用三种不同的数据模型:Duplicate模型、Aggregate模型和Unique模型。每种模型都有其适用的场景和特点,同时也对于不同层次的数据仓库有着不同的使用建议。
Duplicate模型
Duplicate模型适合任意维度的Ad-hoc查询,在这种模型下,数据完全按照导入文件中的数据进行存储,不会有任何聚合。即使两行数据完全相同也都会保留。该模型不受聚合模型的约束,可以发挥列存模式的优势,只需读取相关列,而不需要读取所有Key列。当创建表的时候没有指定Unique、Aggregate或Duplicate时,会默认创建一个Duplicate模型的表,并自动指定排序列。因此,对于一些不需要聚合的多维分析场景,Duplicate模型能够满足需求。
在数仓开发中,DWD层需要保存原始明细数据,同时需要保存历史数据,可以保存为Duplicate模型。ADS层考虑任意维度聚合时,也可以采用Duplicate模型。并且创建dt为动态分区。表结构如下图:
CREATE TABLE `dwd_financial` (
`financial_id` bigint(20) NOT NULL COMMENT '金融机构ID',
`financial_name` varchar(1275) NULL,
`create_time` datetime NULL,
`update_by` varchar(320) NULL,
`update_time` datetime NULL,
`del_flag` char(1) NULL DEFAULT &