吴乙己的数仓指南_0数据仓库概论

1.数据仓库的5W1H

搜索“数据仓库”,你会找到许多艰涩的定义,你会知道它是“面向主题的”,“集成的”,“不可更新的”blabla,却没有文字描述它是什么,干什么的。
现在我来用5W1H法则来向大家勾勒数仓的样貌。
数仓5W1H

1.1 What

啥是数仓?最直观的感受,数仓是一大批(无论表是在RDS还是HDFS还是啥其他地方)+一大批ETL任务(抽取加载转换,搞数据的都懂)。根据不同角色打个比方:数仓就像菜园子数仓工程师是种地的菜农,负责耕地、浇水、收获,驻存;而数据分析师还有数据科学家则是厨子,他们把数仓工程师收获的菜做成美味的饭菜供 食客(决策者) 食用(做决策)。

当然,很多时候数仓工程师也会基于业务,落地分析逻辑,身兼厨子的角色,这里不详细展开,后面会讨论。

1.2 Why

为啥要用数仓?假如程序员仅闷头敲代码,我们无从得知产品上线后表现如何,挣多少钱,客户啥样,这就是数据存在的意义:指导思想。说大白话一点就是给领导分析决策用的。

附上一图流解释:
数据产生价值的方式

1.3 Where

哪里有数仓应用的影子?数仓常支撑BI、数据大屏等应用,大概长这模样:
数据大屏
常见于公司门口,领导汇报,叫“XX实况”,“XX战报”之类,相信大家都见过。

我们身边也有类似的数据应用,比如支付宝理财页面,某一类基金的涨跌指数,红绿灯指数,我们超过了多少多少人,等等。

1.4 When

啥时候用数仓?很简单,用户有分析决策需求的时候。数仓是决策的来源,是分析的输入。

1.5 Who

谁是数仓的受益者?有两个角色我在前4个W中不断提及,就是分析者,决策者,这里不再赘述。其实有一个最大的受益者——大老板AKA资本家,没错就是剥削我们剩余价值的那个人。

数仓将巨量的数据由成本单位变为资产单位,原本占用存储资源(老板花钱),后来推动利润产出(老板挣钱),所以除了分析者决策者,大老板才是幕后最大受益者。

1.6 How

构建一个数仓需要啥?So easy。
1.用户的需求(写代码的都有数,用户是天)
2.业务的逻辑(内功,如何抽象业务,分层思想,直接决定质量)
3.数仓方法论(维度建模,数据分析基础,数据可视化方法……)
4.工具(实时计算,Hadoop生态,RDS……)

2.数据仓库的“道法术器”

在1.6中,我们介绍了构建数仓需要啥,那这些要素的重要程度如何,谁是“道”,谁是“法/术/器”?为什么?诸位且再看我一图流:
数仓“道法术器”
1.:用户。数仓的终极目的是支持用户分析决策,所以用户的需求是一等一的。别说“我是工程师,我只关注如何实现。”,工程师如诗般的代码最终也是拿来产生价值获得利益的,谁来决定价值和利益,不言而喻——用户。

2.:业务。刚才说了用户,与用户紧密相连,用户(当然也有工程师,PM,……)每天打交道的就是业务。啥是业务?它的英文单词阐述了一切——Business,能产生价值,能挣钱的那个过程,叫做业务。数仓工程师与实际场景业务是强关联的,数据取于业务、用于业务,对业务逻辑的理解力直接决定了数仓的质量好坏、用户的体验高低。

3.:方法。这里指的就是数仓的各种方法论,当下最常见的就是KImball老爷子的维度建模理论,当然还有Inmon老爷子的关系建模理论(就是大学数据库课程里ER图代表的那个模型);还有数据分析基础,因为我们要服务数据分析者;此外还有数据可视化方法,什么样的数据该如何展示,用柱图好一点还是折线,甘特图要不要放,等等;还有很多其他的理论,比如可以学习一点AI的知识,数据平台的知识,都是有用的。

4.:工具。这里分成两块来讲。一个是语言,因为要完成ETL任务,写SQL是比较多的,当然也会有同仁写Java完成MapReduce,Python做描述性分析等等,不拘泥于形式。再一个是工具,一般就是存表跑ETL的地方,比如基于Hadoop生态的Hive、Spark(Spark基于的形式可就多了),实时计算的Flink,RDS的MySQL、Oracle,做数据可视化的组件Echarts、AntV,等等。

3.数据仓库的经典架构

不同的公司会有不同的数仓架构,但一般相差不大,万变不离其宗。比较经典的一个架构如图:
数仓经典架构
从下往上说。
业务库:每个产品或者每个业务的数据库,存放着在跑的业务的操作数据

基础层:ODS(Operational Data Store),基于需求需要,按周期(每日,每周,等等)按规则(增量/全量,过滤规则)从各个业务库抽取。也有公司叫STG,甚至有STG+ODS架构的,STG管抽取,ODS管一丢丢的清洗,总体而言功能无太大差别。

DW:Data Warehouse,这就是上面一直在讨论的数仓。目前大公司采取的架构都是“数据集市”(DM,Data Markets),所谓数据集市就是面向一个特定业务分析决策场景(如财务、生产、人事,等等)建立的一套数据分层+数据应用体系,也叫主题,本质就是1.1中说的一大批+一大批ETL任务。当然,如果有做数据中台可能把这里叫“业务域”,这里不展开,后面有机会再讲讲数据中台。


以上就是概论的部分,欢迎大家讨论提问。

下一章简单讲讲数仓开发的流程。

【版权所有,翻版必究。】

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值