ByConity在面向海量数据的用户分析系统上的实践
由于业务的快速发展,数据规模变得越来越巨大。在使用传统的ClickHouse集群已经不能满足业务需求,原因是ClickHouse是基于Shared-Nothing的架构,每个节点是独立的,不会共享存储资源等,因而计算资源和存储资源是紧耦合的,导致如下问题:
1. 扩缩容成本变高,且会涉及到数据迁移,使我们不能实时按需的扩缩容,而且会导致资源的浪费,成本不可控;
2. 紧耦合的架构会导致多租户在共享集群环境相互影响,导致用户查询相互影响;
3. 由于集群上节点的读写在同一个节点完成,导致读写相互影响;
4. 在复杂查询上例如多表Join等操作的性能支持并不是很好,无法满足用户查询多样化的需求。ByConity探索一种完全的存算分离架构,成为完全的云原生数仓引擎。
首先,做ByConity的整体介绍,包括ByConity存算分离架构技术原理,以及多个关键功能特性,如计算存储分离、弹性扩缩容、多租户资源隔离和数据读写的强一致性等,和ByConity在查询性能上做了哪些优化,包括如列存储、向量化执行、MPP执行、查询优化等;然后以一个面向海量数据的用户分析系统的实践案例讲解,包括业务的背景、业务的查询场景、业务的数据规模体量等,以及在使用ClickHouse集群遇到的具体问题进行详细的分析,再到业务迁移前的技术选型对比;最后从用户分析系统整体切换到ByConity后,业务收益的角度讲,ByConity解决了哪些问题,以及整体性能指标分析,包括查询性能指标、运维成本、扩缩容、数据一致性等的具体收益。
通过本次演讲听众可以详细的了解存算分离的云原生数仓引擎的架构原理,同时了解在查询性能上具体优化的方法分享。同时本演讲也适合在类似业务场景中遇到相似问题的企业大数据团队,在做技术选型上提供了具体的实践经验,让这些企业少走弯路。
字节开源技术布道师,前腾讯开源联盟委员、前滴滴开源办公室负责人,长期专注于数据库、云原生、DevOps等技术方向,目前负责 ByConity 的技术布道,是 ByConity 开源社区的 maintainer 之一,长期的开源贡献者,同时也是CCF开源发展委员会执行委员、CCF GitLink核心贡献者、CCF GLCC发起人。