返回

优化实测:Apache Doris向量化版本在小米A/B实验场景的调优实践

后端







**1. 背景** 

2019年9月,为了满足小米互联网增长分析业务中近实时、多维分析查询的需求,小米集团首次引入了Apache Doris。在过去的三年时间里,Apache Doris已经在小米内部得到了广泛应用,包括互联网增长分析业务、广告业务、风控业务等。

**2. Apache Doris向量化版本简介** 

Apache Doris向量化版本是Apache Doris社区在2022年4月发布的重大版本,该版本对Doris的查询引擎进行了全面的重构,引入了向量化执行引擎,可以显著提高查询性能。

**3. Apache Doris向量化版本在小米A/B实验场景的调优实践** 

小米集团在2022年6月开始在生产环境中使用Apache Doris向量化版本。在上线前,小米集团对Apache Doris向量化版本进行了全面的测试和调优,以确保其能够满足小米的业务需求。

**4. Apache Doris向量化版本在小米A/B实验场景的性能对比** 

在上线后,小米集团对Apache Doris向量化版本在小米A/B实验场景的性能进行了对比测试。测试结果表明,Apache Doris向量化版本在小米A/B实验场景的查询性能有了显著的提升。

**5. Apache Doris向量化版本在小米A/B实验场景的调优经验教训** 

在使用Apache Doris向量化版本的过程中,小米集团也积累了一些调优经验教训。这些经验教训包括:

* 使用合适的查询引擎。Apache Doris向量化版本提供了两种查询引擎:向量化查询引擎和非向量化查询引擎。在不同的场景下,使用不同的查询引擎可以获得更好的性能。
* 使用合适的存储格式。Apache Doris向量化版本支持多种存储格式,包括列式存储格式和行式存储格式。在不同的场景下,使用不同的存储格式可以获得更好的性能。
* 使用合适的索引。Apache Doris向量化版本支持多种索引类型,包括布隆过滤器索引、位图索引和稀疏索引。在不同的场景下,使用不同的索引类型可以获得更好的性能。
* 使用合适的物化视图。Apache Doris向量化版本支持物化视图。在不同的场景下,使用物化视图可以获得更好的性能。

**6. Apache Doris向量化版本在小米A/B实验场景的最佳实践** 

在使用Apache Doris向量化版本的过程中,小米集团也总结了一些最佳实践。这些最佳实践包括:

* 使用向量化查询引擎。在大多数情况下,使用向量化查询引擎可以获得更好的性能。
* 使用列式存储格式。在大多数情况下,使用列式存储格式可以获得更好的性能。
* 使用合适的索引。在不同的场景下,使用不同的索引类型可以获得更好的性能。
* 使用合适的物化视图。在不同的场景下,使用物化视图可以获得更好的性能。
* 使用合适的查询优化器。Apache Doris向量化版本提供了多种查询优化器,包括基于规则的查询优化器和基于代价的查询优化器。在不同的场景下,使用不同的查询优化器可以获得更好的性能。

**7. 结论** 

Apache Doris向量化版本是一款高性能的查询引擎,可以满足小米集团互联网增长分析业务的近实时、多维分析查询需求。在使用Apache Doris向量化版本的过程中,小米集团积累了一些调优经验教训和最佳实践。这些经验教训和最佳实践可以帮助其他用户更好地使用Apache Doris向量化版本。