文章目录
简介
数据平台部作为B站的基础部门,为B站各业务方提供多种数据服务,如BI分析平台,ABTest平台,画像服务,流量分析平台等等,这些服务、平台背后都有海量数据的取数查询需求。伴随着业务的发展,取数服务也面临越来越多的挑战:
需求多、人力紧张,越来越多业务基于数据驱动来做运营,相关的取数需求如:指标查询、UP主、稿件等明细数据的个性化查询需求越来越多,导致在需求响应上,有限的人力跟不上业务发展。
系统架构重复建设:基于Lambda,Kappa的大数据应用架构在B站有一些应用积累,但非平台化,导致在新场景支持上,出现重复建设,增加了维护成本。
性能优化成本高:在满足多种取数场景需求上,数据服务引入多种引擎,比如Elasticsearch、ClickHouse、HBase、MongoDB,这些引擎都需要查询定制优化,增加了研发成本。
基于这些问题的思考,我们在取数服务上经过了2次大的架构升级,不断探索服务化,平台化之路,下面介绍我们在这方面的工作,欢迎大家一起学习交流。
我们在取数服务的升级道路上,大概分为三个时期:最开始是石器时代,这个时期主要以响应业务需求,技术可复用为主;第二时期是铁器时代,我们开始尝试做一些通用服务来支持基础需求,比如统一出仓,统一查询,降低研发成本;第三时期是工业时代,为了更快的响应业务需求,我们尝试引入湖仓技术来进一步提升取数研发的效率。下面分别介绍。
石器时代 - 烟囱式开发
取数服务在早期建设时,按照常规方式,我们将过程分为4个阶段:数据模型(数仓建模)、数据存储,查询接口(取数接口),数据产品(业务定制),如下图所示:<