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

请描述在 Apache Doris 中配置数据压缩机制的具体步骤,并解释不同压缩算法的适用场景。

数据系统设计技术原理方案权衡Apache Doris

考察说明

考查对 Doris 数据压缩机制的理解及配置能力。

回答思路

  1. 【回答框架 1】在 Doris 中,数据压缩是自动进行的,用户无法直接干预特定列的压缩,但可以通过配置表属性中的 compression_type 字段来指定压缩算法,可选值包括 NO_COMPRESSION、LZ4、LZ4F、ZSTD 和 SNAPPY,默认使用 LZ4 以实现压缩率与解压速度的平衡。
  2. 【回答框架 2】配置压缩算法的方法是在建表或修改表时设置 COMPRESSION 属性,例如 CREATE TABLE ... PROPERTIES('compression_type'='ZSTD'),或通过 ALTER TABLE ... SET ('compression_type'='LZ4') 进行修改。该属性会影响后续新写入的数据的压缩方式,已有数据保持原压缩格式,不会自动重新压缩。
  3. 【回答框架 3】不同压缩算法的特点:LZ4 和 LZ4F 压缩速度快,适合高写入吞吐场景;ZSTD 压缩率更高,能显著减少存储空间,但压缩和解压CPU开销较大;SNAPPY 压缩速度快但压缩率较低;NO_COMPRESSION 表示不压缩,适合极低速导入或已压缩的数据。选择算法需在压缩率、CPU开销和查询性能之间权衡。
  4. 【回答框架 4】使用场景建议:若存储成本是主要问题,可选 ZSTD;若追求高性能写入和查询,推荐 LZ4;对数据压缩率要求不高且导入速度优先,可选择 LZ4F 或 SNAPPY;若数据本身已是压缩格式(如 parquet),可配置 NO_COMPRESSION 避免二次压缩的CPU浪费。
  5. 【回答框架 5】Doris 的压缩机制是列式存储的一部分,压缩在存储层自动执行,用户无需关心压缩和解压的时机,只通过表属性进行配置即可。监控压缩效果可查看存储空间的节省情况,必要时可调整压缩算法以优化集群整体性能。
  6. 【关键点 1】Doris 通过表属性 compression_type 配置压缩算法,默认 LZ4。
  7. 【关键点 2】配置方法包括建表 PROPERTIES 和 ALTER TABLE SET 两种方式。
  8. 【关键点 3】算法选择需权衡压缩率、CPU开销和性能:ZSTD 压缩率高,LZ4 解压快。
  9. 【关键点 4】已存数据不会自动重新压缩,更改压缩类型只影响新写入数据。
  10. 【易错点 1】误以为能对单列单独设置压缩算法,实际是表级属性。
  11. 【易错点 2】忽略压缩算法的CPU开销,盲目选择高压缩率算法可能影响查询性能。
  12. 【易错点 3】忘记修改配置仅对新数据生效,可能需要通过数据重写才能彻底调整压缩格式。