《李振炜-基于Doris湖仓一体分析系统在快手的实践.pdf》由会员分享,可在线阅读,更多相关《李振炜-基于Doris湖仓一体分析系统在快手的实践.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、DataFunConDataFunCon#20242024基于基于DorisDoris湖仓一体分析系湖仓一体分析系统在快手的统在快手的实践实践演讲人:李振炜-快手-大数据架构师ContentsContents目录目录公司OLAP分析现状自动物化系统湖仓一体分析系统架构缓存系统公司公司OLAPOLAP分析现状分析现状公司OLAP分析现状在当下的信息时代,数据作为公司一种重要的资产,OLAP分析提炼数据价值,成为公司决策的重要的依据,在公司内部使用非常广泛,每天的查询量接近10亿公司OLAP分析现状主要的分析引擎为ClickHouse,整体的分析加工链路如下:公司OLAP分析现状这套分析加工流程,
2、虽然在公司内部成熟稳定运行,不过也面临很多的问题。01入仓代价比较入仓代价比较大大数据入仓到CK,能提高查询性能,但同时造成数据冗余存储,影响数据就绪时间,花费精力维护导入任务,数据导入占用CK集群资源02加工链路复杂加工链路复杂为了提高查询性能,数据工程师需要花大量的人力建立ADS层模型,并进行toCK03数据治理成本较大数据治理成本较大报表看板下线之后,对应的ADS层和toCK的任务还在一直运行,造成计算资源和存储资源的浪费,大部分需要人工进行沟通04查询调优门槛查询调优门槛高高排序字段的选择,二级索引的建立,物化视图的建立,hash字段的选择对查询性能影响比较大,但同时门槛较高公司OLA
3、P分析现状为了解决当前面临的一些问题,结合业界湖仓一体和数据编织等理念,我们重构了当前的分析系统,打造了基于Doris湖仓一体分析系统,分析性能达到原来数仓的能力,同时又提高数据交付能力和数据治理能力。湖仓一体分析系统架构湖仓一体分析系统架构湖仓一体分析系统架构数仓引擎直接分析湖中的数据,同时性能达到数仓原先水平湖:1.数据在湖中完成生产2.统一存储,数据共享3.数据格式开放,支持多种引擎查询仓:1.查询效率高2.索引,物化,向量化执行等能力3.mpp分布式执行架构湖仓都有各自的优点,我们选取分析系统依赖的相关的点,进行结合,打造湖仓一体分析系统湖仓一体分析系统架构首先面临的问题是数仓执行引擎
4、的选型,结合业界的发展趋势以及在公司内部的一些实践,最终选择了Doris。Doris为了提高数据湖的查询性能,已经做了大量的工作,包括:元数据缓存AParquet Native ReaderB外表异步物化E外部统计信息,进行CBO优化D数据文件缓存到本地C一致性Hash算法分发查询任务,尽可能提升缓存命中率F湖仓一体分析系统架构在Doris现有功能的基础上,以及结合实际使用情况,做了如下的一些调整 元数据缓存:元数据缓存在外部系统中,FE尽可能无状态,缓存元数据能全局共享,同时完成缓存的管理 数据缓存:引入了分布式文件缓存系统Alluxio,提高数据缓存的稳定性,合理高效利用MEN/SSD/H
5、DD等异构存储介质。同时数据也可以缓存到Client(BE节点)本地 外表统计信息:存储到外部系统中,调度离线Spark任务去收集对应的统计信息,并且统计信息全局共享 排序主键索引:湖中的表生产的时候,指定排序键,使得Parquet中的数据有序,谓词下推后能尽可能过滤无用的RowGroup,同时调小RowGroup的大小,提高RowGroup过滤效率 预处理bucket表:湖中的表可以生成bucket,Doris利用bucket信息,生成colocation agg和colocation join,避免shuffle,提高查询效率湖仓一体分析系统架构自此,入仓代价比较大的问题得到很好的解决,D
6、oris可以直接分析湖中的数据,避免数据进行同步,同时性能可以达到原来仓的水平。但同时又引入了一些新问题:排序键的设计,bucket字段的设计,RowGroup大小的调整,这些都需要在生产阶段完成,无形中增加了数据工程师的工作量 元数据缓存,数据缓存,统计信息的收集完全感知不到生产过程,数据变化之后,这些信息需要联动进行调整,否则有不一致的风险湖仓一体分析系统架构引入新问题的同时,设计之初面临的加工链路复杂和数据治理成本较大的问题目前还没有解决,深入分析这些痛点,可以发现根源在于ADS模型的生产和消费不是同一个角色。ADS模型消费主要是运营,产品,数分,业务研发在使用,和业务场景深度耦合,需求