小米数据场景中ApacheDoris的应用与优化

需积分: 5 3 下载量 105 浏览量 更新于2024-06-20 收藏 5.12MB PPTX 举报
"ApacheDoris在小米数据场景的落地实践" Apache Doris 是一款开源的、高性能的、在线分析处理(OLAP)的数据仓库系统,它在小米的数据场景中扮演了重要的角色。这篇介绍主要由小米的OLAP引擎研发工程师魏祚分享,他同时也是Apache Doris的PMC成员。在小米的应用实践中,Apache Doris 显示出了其优越性,特别是在实时数据分析和查询性能上。 在小米的应用场景中,Apache Doris 替代了原有的基于SparkSQL的复杂架构,简化了运维流程,降低了成本。例如,在小米的增长分析平台上,之前的架构依赖多个组件,导致运维复杂且SparkSQL的查询延迟较高。而采用Apache Doris后,查询性能显著提升,不再依赖外部系统,同时提供了对标准SQL的全面支持,使得用户使用更为便捷。此外,Apache Doris 社区的活跃性也是小米选择它的重要原因,这有利于后期的维护和升级。 在性能对比方面,通过对一个日均数据量约为10亿的业务进行测试,Doris在事件分析、留存分析和漏斗分析等场景下,相比于SparkSQL+Kudu+HDFS方案,查询时间平均降低了85%(事件分析)和50%(留存和漏斗分析),显示出强大的查询效率。 在数据导入和查询方面,Apache Doris 的设计确保了单个文件内部数据的有序性,但不及时的Compaction(合并操作)会导致版本累积,增加元数据压力,影响查询性能,并可能消耗过多资源引发OOM。因此,小米在运维层面进行了Compaction的调优,包括引导用户设置合理的分区和分桶、降低导入频率、避免频繁删除操作,以及根据业务集群的不同配置不同的Compaction参数。同时,小米还实施了版本积压报警系统,动态调整Compaction参数,并支持手动触发特定数据分片的Compaction任务,以提升特定部分的处理优先级。 此外,小米还面临并解决了Flink重复导入的问题,这是Apache Doris在小米应用过程中另一个优化点。虽然具体的解决方案没有详尽描述,但可以推断小米团队已经找到了有效防止或管理这类问题的方法,以确保数据导入的准确性和系统的稳定性。 Apache Doris 在小米的数据场景中展现了其高效、灵活和易运维的特点,通过不断的优化和调整,小米成功地利用Doris提升了数据分析的速度和质量,降低了运维成本,同时也为未来的技术扩展和维护打下了坚实的基础。