数据岗位面试题更新 2026-08-05

请说明 Apache Doris 的存储模型设计思路,并解释在实际业务中应依据哪些因素来挑选合适的存储模型?

数据技术原理技术选型Apache Doris

考察说明

考查对 Doris 三种存储模型的设计原理及选型依据的理解。

回答思路

  1. 【回答框架 1】Doris 提供三种存储模型:Duplicate Key Model(明细模型)、Aggregate Key Model(聚合模型)和 Unique Key Model(唯一主键模型)。明细模型直接存储所有导入数据,不进行任何聚合,适用于需要保留原始明细、任意维度查询的场景,如日志、订单流水。
  2. 【回答框架 2】聚合模型在导入时或查询时按指定聚合函数(如 SUM、MAX、MIN、REPLACE)对相同 Key 的数据进行预聚合,显著减少存储和查询开销,适用于报表统计、汇总分析等场景,但会丢失明细,且更新不灵活。
  3. 【回答框架 3】唯一模型保证主键唯一,新导入数据会覆盖旧数据,适用于需要实时更新的场景,如用户信息、订单状态。其实现方式在旧版本中依赖聚合模型的 REPLACE 函数,新版本支持 Merge-On-Write 机制,查询性能更好。
  4. 【回答框架 4】选型依据:若需保留全量明细且无更新需求,选明细模型;若主要做汇总统计且可接受数据丢失,选聚合模型;若需按主键更新或去重,选唯一模型。同时需考虑查询模式、更新频率、存储成本和导入方式。
  5. 【回答框架 5】实际中还需注意:聚合模型和唯一模型的 Key 列必须排在 Value 列之前,且排序键影响查询效率;选择模型后难以更改,需在建模阶段充分评估业务需求。
  6. 【关键点 1】明细模型保留所有原始数据,适合日志、流水等无需更新的场景。
  7. 【关键点 2】聚合模型通过预聚合减少存储和查询开销,适合统计报表,但丢失明细。
  8. 【关键点 3】唯一模型保证主键唯一并支持更新,适合实时更新场景,新版本采用 Merge-On-Write 提升性能。
  9. 【关键点 4】选型需综合查询模式、更新需求、存储成本和导入方式,且模型创建后不易修改。
  10. 【易错点 1】聚合模型和唯一模型会丢失明细数据,若后续需要明细查询则无法恢复。
  11. 【易错点 2】唯一模型在旧版本中更新性能较差,需关注版本特性。
  12. 【易错点 3】模型选择需在创建表时确定,后期修改成本高,需谨慎评估。