vlambda博客
学习文章列表

【数据体系】- 深入浅出数据仓库

p2虾,一个不断自我抗争的人。

0x00 前言

说起数据仓库,未有了解的人应该会下意识的拆解为数据与仓库这两个词,形成通俗的印象,也就是装载数据的仓库。但是这样的解释难免有失偏颇,若数据仓库仅仅承载这一项功能,那么随着数据量越来越大,其最常见的使用场景-决策将变的越发困难。

不谋万世者不足以谋一时,不谋全局者不足以谋一域。笔者会从全局出发,多角度去分享对于数据仓库的看法。

愿,引起你的思考。

0x01 数据的本质

陈述数据的本质之前,先了解一下宇宙的起源是什么。

目前学术界普遍认为,宇宙是由一个体积无限小,温度无限高,密度无限大的质点爆炸产生,也就是大爆炸宇宙学。在大约137亿年前,该质点发生了大爆炸,在大约一个普朗克的时间里,重力场开始形成。到大爆炸的0.02秒,宇宙开始出现大量的光。接着大量的能量转换为氢原子,而差不多10个氢原子核又可以生成一个氦原子核,这个过程中能量减少而物质不断增加。

大约30万年后,宇宙的温度降到3000摄氏度,这时一部分微弱的原始光穿过了宇宙,但这些原始的光波辐射不会完全消失,即使在100多亿年后。

科学的突破往往是无心插柳的结果。1965年贝尔实验室制作了精密的射电天线,用来接受卫星“回声”的微弱信号。想要准确的接收信号最重要的就是清除噪声,结果他们发现不论调整到哪一个方向,甚至重新布线、清除鸽子窝与鸟粪也无法消除这个噪音,这个噪声就像是背景一样无处不在。

很快,宇宙学研究的科学家就给出了正确的解释:这些消除不了的噪声,就是宇宙大爆炸的残留辐射。从此,大爆炸宇宙学被最终证实。

在此理论的指导下,笔者给出第一个观点:

View 1:物质、能量与信息是组成宇宙的三个基本元素

物质与能量或者物质与能量内部都可以相互转化,转化的过程中即产生了信息。而数据与信息的关系是非常清楚的:信息是经过汇总、筛选与抽象的数据。那么就得到了第二个观点:

View 2:数据的本质是信息

0x02 什么是数据仓库

在中古时代以前,科学与技术是两个思想渠道,技术是实践在前,然后再找一个理论把它贯通起来。而科学是理论在前,然后通过实践经验来检验。直到近代科学时代以后,基础科学与应用科学才最终结合发展为一个庞大的体系。但是我们仍然能够追溯到一项技术或理论的起源:

View 3:数据仓库是技术演化的产物

数据仓库是伴随着信息与决策支持系统的发展过程产生的。在信息与决策支持系统的发展中,遇到了以下且不局限于以下的问题:

  • 数据缺乏信任

    • 无基准时间对比

    • 相同指标不同算法

    • 无公共数据源

  • 生产力低下

    • 数据查找慢

    • 定位数据问题慢

    • 重复构建

诚然信息与决策系统还会不断的更新迭代,未来会遇到更多的问题,不仅仅有数据量继续膨胀,还有应用场景更多丰富等,但是作为解决其问题演化而来的数据仓库已有了核心属性:

View 4:数据仓库是提升数据到信息转化效率的工具

数据仓库能够提升数据到信息转化的效率,好的数据仓库能够持续提升数据到信息的转化效率。

0x03 数据仓库的特性

数据仓库之父Inmon说:数据仓库是一个面向主题的、集成的、非易失的,随时间变化的数据集合。这个抽象的概念不容易让无基础的同学快速的具象,所以笔者就这四个特性分别来陈述。

1、集成性

集成性是数据仓库最重要的特性。数据仓库中的数据由多个类型的数据源传输而来,不论上游数据管理组件是mysql,oracle,tidb,redis,mongodb或者任何没有听过的技术名词,数据进入数据仓库之后可以使用一种技术进行处理,大大降低了数据的使用难度。

当然集成性的具体细节还包括:

  • 码值一致转换:上游性别由male/famale,0/1,x/y,统一重新编码

  • 字段类型映射:上游int(11),varchar2,zset等转为数仓技术字段类型

  • 数据传输效率:大数据量不必每一次全部传输,获取增量是一个好选择

2、非易失与随时间变化

当数据从线上传输到了数据仓库时,就留下了数据的快照,绝大部分数据仓库允许数据24小时的失准时间(t-1),所以大部分数据仓库都是每隔一天传输一次数据。

要理解数据快照的概念:关于指定数据集合在某个时间点(拷贝开始的时间点)完全可用的映像。这里隐含了一个点,快照只在某个时间点是完全准确的。所以对于t-1的数据仓库,会有24小时的失准时间,这也解释了在时间成本越来越高,效率追求越来越高的当下,实时数仓为何变的如此重要。

《商业的本质》说要看懂公司的核心报表,并关注变化与差异,数据不是用来算的,而是通过变化找原因。数据仓库中存储了过去每一天快照且通常不更新(非易失),新的快照与历史快照在时间线上不尽相同(随时间变化)。使用者可以在任意一天向前或向后看数据的变化情况,同时使用相同的算法仍然能够确保数据的幂等性。

3、面向主题

面向主题实际上是根据业务对于数据进行有效编码,让理论最佳值在应用中落地。

Linux之父说:烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系。使用者希望当看到数据目录时,各种数据已经分门别类,目别汇分。可以将面向主题特性具象为一个索引,不仅能全局的掌握数据的类别,还能够快速的定位到目标数据。

0x04 数据仓库是产品

先给出产品的定义:能够供给市场、被用户使用和消费,并能满足人们某种需求或欲望的任何东西,包括有形的物品、无形的服务、组织、或它们的组合。接下来从4个方面来论证数据产品的合理性:

1、设计合理性

  • 用户的存在与接受意愿

从直接决策的管理者到提供决策的分析师,再到面向用户的运营或开拓市场的销售,使用数据的频率与类型越来越多,尤其是当感受到数据驱动魅力的时候,用户会帮助扩展数据的使用深度与广度。

  • 需求的存在与提供可能

产品一定是介于用户与场景之间的,因为出现了数据到信息的转换效率问题,所需产品需求既合情也合理。数据团队是企业数据的重要出口,这样就为数据仓库的落地提供可能。

  • 效率/成本/体验

数据仓库本就是提升效率的工具,是过去解决数据问题遇到时间与人力成本下诞生的技术,在数据仓库的架构下,数据开发同学与使用同学均会享受到好的体验

2、盈利合理性

因为以提高效率为核心,数据仓库的定位在于节省时间与人力,同时对于各类数据应用赋能。

对于决策用户来说,当信息缺失时需要做出的决策必定会在后来承担后果,好的数据仓库可以提供多角度,多方向的决策辅助,从而减少决策的试错次数,节省成本。

3、拓展合理性

数据仓库发展到现在,更多从数据仓库引申的概念层出不穷,数据中台与数据湖便是其中的佼佼者。因为数据仓库属于基础架构,所以当底层完善后,上次应用的爆发增长则没有了后顾之忧。

成功的产品能引导和创造用户需求,能创造或改变用户的方式,拥有良好的用户体验,同时能为企业带来盈利和商业价值,好的数据仓库不仅要满足这些特点,还需要持续不断的提升数据到信息的转化效率。

0xFF 总结

数据仓库是数据使用人员最常接触的工具,也是数据开发人员的敲门砖,但是它仅仅是一个起点而已。本篇文章作为数据仓库爱好者的开门砖,提供更宽的视角来看待数据仓库,数据之路从此开始。
愿,共同进步。


热门文章