vlambda博客
学习文章列表

BBD技术控 | 数据仓库的数据化、智能化、业务化实践

BBD数据研发服务中心,致力于数据采集、数据平台、数据仓库和数模中台等基础服务设施建设,同时为公司各个产品线及项目提供高效的数据接入和大数据开发服务。


01.
背景
建设数据仓库的最初目的,一是解决大数据计算数据来源问题,二是提供即席查询,供产品、模型及其他相关人员做数据调研使用。
02.
数仓方法论
传统数据仓库方法论分为两派,分别是Inmon和Kimball,这两套理论分别由Bill Inmon和RalphKimbal提出。
Kimball面向业务,以最终业务为导向 ,从流程上看是自底向上的,即从数据集市到数据仓库再到数据源(先有数据集市再有数据仓库)的一种敏捷开发方法。
Inmon 则是面向整体数据,侧重于数据的处理,从中抽取实体-关系, 从流程上看是自顶向下的,即从数据源到数据仓库再到数据集市的(先有数据仓库再有数据市场)一种瀑布流开发方法。
相比较而言,从软件开发形式上,Inmon更传统,Kimball更加贴合时代的发展,但并不意味着哪个好:Inmon开发周期长但后期较易维护,Kimball则因为面向业务,使用的数据都是业务主题数据,所以开发难度小,周期短,但是后期维护或者二次开发难度过大。所以建模理论也是需要根据具体业务场景来选择,在实际数据仓库建设中,往往会借鉴两种数据仓库理论。
03.
数仓实践
BBD数仓建模更多偏向Inmon的方法论,采用星形模型进行数仓建模,中间是事实表,四周是维度表。
第一代数据仓库结构:

BBD技术控 | 数据仓库的数据化、智能化、业务化实践

主要数据源是数据平台MySQL,汇总了BBD合规采集的所有数据。KUNLUN数据主要是离线关联方,是通过工商数据解析获得的全国所有企业的关联图谱数据,然后通过抽取得到4度关联方结构化数据。第三方数据是业务反哺数据。
起初,只采用Sqoop全量抽取的形式,由于涉及到MySQL删除逻辑的一些问题,无法实现增量抽取。ODS层是贴源层,也是操作数据层,从数据源抽取的数据都存储在这里,通过Spark-SQL做关联,合并获得相对较宽的表,存储到DW。然后通过Spark计算企业相关指标或者其他一些统计类信息。DM层的命名可能会引起歧义,这一层并不是集市层,而是为了方便调研和测试等相关工作,提供一个OLAP查询引擎。
后来由于个别表数据量剧增,每日增量过大,对MySQL性能影响较大。对于这些表,数据平台采取写入HBase的解决方案,同时实现数仓的增量更新需求。
第二代数据仓库结构:
BBD技术控 | 数据仓库的数据化、智能化、业务化实践

其中,为了应对多种数据源增量更新,采用了阿里开源的Canal框架。同时还增加了调度监控等其他功能,其技术架构如下:

04.
总结和展望
企业数据建设是大数据时代的一个核心工程,特别是对于像BBD这样的大数据企业。一般来说,企业数据建设大体分为数据化,智能化,业务化。
  • 数据化 :是指所有的业务或企业相关做数据化,线上化,从而收获数据沉淀。
  • 智能化 :通过数据智能支撑业务运营。
  • 业务化 :数据驱动业务,通过挖掘数据价值提供新的业务增长点。
很多企业正在加大对数据仓库、数据湖、数据平台、数据中台等数据工程建设的投入,希望能最终实现数据驱动企业增长。BBD的数据建设也在不断持续发展,数模中台是未来数据建设的一个方向,在拥有数据平台和数据仓库后,必然要再往前迈一步,更聚焦业务,更多关注企业层面的数据治理以及数据资产化的问题,包括数据资产化管理(质量,成本,安全),数据服务的构建,数据体系化建设(统一模型和指标,或者说统一指标和模型规则,这样针对不同数据源也能快速响应)。其实,中台就是一个企业能力复用的平台,是为前台,为业务而生的平台。


参考文献:

《Building the Data Warehouse》,William H.Inmon

《The Data Warehouse Toolkit》,Ralph Kimball

《大数据之路--阿里巴巴大数据实践》,阿里巴巴数据技术及产品部

《说透中台》,王健


END / 
点击图片,查看往期精彩