原文:数据仓库系列篇——唯品会大数据架构 - 2018.09.21 - 知乎
作者:诸葛子房 - 版权所有
记录,备忘.
1. What - 大数据&数据仓库
1.1. 什么是大数据?
广义的大数据是指:无法用现有的软件工具提取、存储、搜索、共享、分析和处理的、海量的、复杂的数据集合.
业界通常用4个V(即Volume、Variety、Value、Velocity)概括大数据的特征:
一是数据体量巨大(Volume).
二是数据类型繁多(Variety). 相对以往便于存储的、以文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据,对数据的处理能力提出了更高要求.
三是价值密度低(Value). 以视频为例,一部1小时的视频,在连续不断的监控中,有用数据可能仅有1~2秒. 如何通过强大的机器算法,更迅速地完成数据的价值“提纯”,成为目前大数据背景下亟待解决的难题.
四是处理速度快(Velocity). 这是大数据区分于传统数据挖掘的最显著特征.
1.2. 什么是数据仓库?
数据仓库的概念创始人W.H.Inmon在《建立数据仓库》中定义:面向主题的、集成的、相对稳定的、随时间不断变化的数据集合,用以支持经营管理中的决策制定过程.
数据仓库的目的,是构建面向分析的集成化数据环境,为企业提供决策支持.
1.3. 大数据&数据仓库
现在大部分情况下其实大家说的是狭义的大数据,就是专门指处理大数据的新技术,新工具,例如分布式计算,分布式存储等.
数据仓库是为企业提供决策支持的战略集合,而大数据是技术,是工具.
2. Why - 为何要建设好数据仓库
大数据的运用,是金融得以快速发展的基础. 而良好的数据仓库架构,可以协助这些应用快速实施,优化资源利用.
唯品金融在建设之初,就清楚地知道充分利用大数据的重要性. 大数据的应用,体现在金融用户整个生命周期中——
在贷前阶段,通过对所有客户的分析和算法模型计算,我们分析哪些客户更有金融产品需求,有针对性地在广告资源和营销资源上进行重点投放;
在风控审核阶段,需要防止不符合要求的客户通过审核,基于大数据构建授信评分模型、欺诈模型来控制风险;
在营销阶段,需要识别高价值用户,利用大数据根据用户的浏览和购买行为,对用户进行画像描述,在运营广告位投放针对性的运营信息,促进用户的开通和使用;
在贷后管理阶段,根据客户的购买行为及还款行为,提前预测还款风险情况,提前沟通,使坏账始终维持在较低水平.
3. How - 如何做好数据仓库分层
在现代数据仓库建设中,分层理论已得到广泛应用,它的价值包括但不限于:便于数据管理、清晰数据结构、便于数据血缘追踪、减少重复开发、简化复杂问题、屏蔽原始数据异常.
唯品金融的数据仓库,分为如下三层——基础层、中间层、应用层.
3.1. 基础层(DW)
基础层,也叫DW层,是最接近数据源中数据的一层. 数据源中的数据,经过抽取、转换、加载(即ETL)之后,装入DW层. 本层数据,大多是按业务系统的分类方式分类的,这样可以快速的和业务系统进行对应.
但是,这一层面的数据却不完全等同于业务原始数据. 在源数据装入这一层时,要进行一定的清洗(例如去掉明显偏离正常水平的信息)、去重、提脏、业务提取、单位统一、砍字段(例如用于支撑前端系统工作但是在分析中不需要的字段,敏感信息字段)、业务判别等多项工作.
3.2. 中间层(DM)
中间层(DM),是数据仓库的核心.
从DW层中获得的数据,按照主题建立各种数据模型.
中间层建设原则如下:
[1] - 中性,共享:中间层的主题要足够抽象,不针对特定的应用而设计;
[2] - 灵活,可扩展:当业务发生变化时易于扩展,适应复杂的实际业务情况;
[3] - 稳定性强:能够在长时间内保持其稳定性,满足下游集市、分析、挖掘等的使用;
[4] - 规范,易读:分主题进行模型设计,易于让使用人员理解和使用.
3.3. 应用层(ST)
应用层(ST),这一层提供数据产品使用的结果数据
在这里,主要提供给数据产品和数据分析使用的数据,当然也有将集市层单独划分一个层次的设计,集市下面才是应用. 我们之所以把集市划为应用,是因为集市与应用结合得非常密切,所有的预处理数据在DM层已处理好,集市层直接运用结果计算数据即可.
最终的应用一般会存放在 redis、mysql 等系统中,供线上系统使用,也可能会存在Hive或者hbase中,供数据分析和数据挖掘使用. 我们经常说的报表数据,一般放在这里.
总结
在互联网金融大数据建设中,数据分层建设是一个重要环节,它决定的不仅是一个层次的问题,还直接影响到后续血缘分析、特征自动生成、元数据管理等一系列建设. 层级划分精简,减少了数据处理流程,弱化了传统数据仓库数据模型设计的规范限制. 能够快速构建大数据生产系统、响应业务分析需求、迭代大数据分析能力、适应互联网公司业务发展节奏. 但在建设之初,一定要把架构搭好,并做好数据源管理,且充分了解行业发展.
本文分享了笔者对唯品金融数据仓库的设计思路,未必适合所有行业公司. 但方法是灵活的,理念是共通的,欢迎感兴趣的朋友,分享心得,交流经验.