携程基于StarRocks的湖仓分析新范式探索
在当前的大数据生态中,各种组件层出不穷,如何有效地整合这些组件,提升数据分析的效率成为企业关注的焦点。携程在这方面做出了积极的探索,特别是在引入StarRocks后,其数据分析能力得到了显著提升。
技术背景
在引入StarRocks之前,携程的大数据平台已经使用了多种数据处理和分析工具,如Presto、Spark等。然而,随着数据量的增长和业务需求的复杂化,传统的解决方案逐渐暴露出查询速度慢、维护成本高等问题。
StarRocks的引入与演进
StarRocks是一款高性能的分析型数据库,专为海量数据场景设计。携程在引入StarRocks后,经历了多个阶段的演进,从最初的StarRocks查询Hive外表到最终的StarRocks内表,查询速度得到了显著提升,最高可达10倍以上。
湖仓架构
携程的湖仓架构整合了多种数据源和计算引擎,包括HDFS、S3、Kafka等存储层,SparkStreaming、Flink、Spark等计算层,以及BI分析、数据探查、指标系统和可视化等业务层。StarRocks的引入,使得整个架构在查询性能上有了质的飞跃。
查询效果
通过实际业务场景的测试,StarRocks在携程的查询性能提升显著。例如,某个典型查询场景下,查询时间从148.93秒降低到5.86秒。此外,StarRocks还大幅节省了服务器资源,相比Presto节省了5倍服务器。
功能测试与优化
携程对StarRocks进行了全面的功能测试,包括数据集、报表和SQL场景的测试。测试结果显示,StarRocks在查询速度、SQL兼容性和查询成功率等方面均表现优异。
加速方式
StarRocks提供了多种加速方式,包括IO合并、延迟物化、向量化执行等。这些优化使得StarRocks在处理复杂查询时能够更高效地利用硬件资源,提升查询性能。
StarRocks在ETL中的应用
除了查询性能的提升,携程还在探索StarRocks在ETL中的应用。通过结合StarRocks和Flink等实时计算框架,携程实现了近实时的数据分析和处理。
后续计划
携程计划在未来的工作中进一步探索StarRocks的应用场景,包括自动创建合理的物化视图、推进Trino到StarRocks-Hive的迁移,以及探索StarRocks在ETL中的更多应用。
结论
携程基于StarRocks的湖仓分析新范式探索,不仅提升了数据分析的性能,还降低了维护成本。StarRocks的高性能、易用性和可扩展性使其成为携程大数据平台的重要组件。随着技术的不断进步,期待携程在数据分析领域取得更多突破。