按顺序要了解:数仓是什么、数仓是干什么、数仓具体是怎么做
一. 数仓是什么(了解基本概念)
略
二. 数仓是干什么(了解自己的工作内容在公司所处的定位)
- 阶段规划
- 角色职责
- 数据仓库研发规范流程
- 流程规范中每个流程的概述
三. 数仓具体怎么干(重点:明确自己的工作具体该怎么搞)
主要是明确数仓的建设流程:(面试官会问:公司新启动一个项目,要从头建立一个数仓,你准备怎么做?)
a. 肯定要先明确一件事儿起点与终点,起点就是对业务的熟悉,终点就是数仓最终要支持的需求;
b. 找相关的业务人员介绍具体的业务,沉淀初相关的文档;
c. 找分析师或业务运营人员沟通获知需求,或者对系统中现有报表进行分析;a. 在第一步业务调研完,应该知道公司有哪些业务过程,业务过程可以概括为企业中一个个不可拆分的行为事件;
a. 在第二步中了解了公司的业务过程后,对这些业务过程进行数据域的划分;数据域的划分工作可以在业务调研之后进行,需要分析各个业务模块中有哪些业务活动。
b. 数据域是指面向业务分析,将业务过程或者维度进行抽象的集合。为保障整个体系的生命力,数据域需要抽象提炼,并长期维护更新。在划分数据域时,既能涵盖当前所有的业务需求,又能让新业务在进入时可以被包含进已有的数据域或扩展新的数据域;
c. 一个互联网企业平台,肯定得有用户,也肯定得有商户,也肯定得有商品,也肯定有交易,也肯定有日志,也可能会有互动评价之类,也会有售后服务等; 总结起来一般会有:用户域,商户域,商品域,交易域,日志域,互动域,服务域;a. 在第三步的基础上,已经知道了公司的业务,并且对业务也做了划分,接下来就要真正进入数仓的建设了;
b. 数仓要解决的问题就是:谁(Who)在什么时候(When)对什么东西(What)进行了怎样的操作(How): 这里的Who和When和What就是维度,是衡量和观察业务的环境; 这里的How就是度量,也叫指标,是操后后的结果;
c. 维度是企业数仓的核心,必须要保证维度的唯一性,有且只要一种维度
d. 构建总线矩阵,就是要要明白之前分析过的那些业务过程 和 哪个维度有关联;例如"下单"这个业务过程,就一定和买家,卖家,和商品这三个维度有关;a. 经过上面的步骤,已经是完事儿具备,只欠东风了,可以统计最终的指标了;
b. 指标还有分类,有原子指标,以及派生指标等;
总结:
- 上述步骤中,最难的就在于第4步和第5步, 这个过程就是数仓的建设,也是数仓工程师的工作重点;
- 在数仓的建设中,数仓工程师需要分析维度,设计维度表,写sql,接受需求方的统计需求,设计结果表,开发统计代码等;
- 但也不是上来就写,要是这样写的话,会造成数据孤岛或者烟囱式开发,每来一个需求就要开发一个代码;
- 所以数仓建设需要方法论的指导,需要有一定的分层架构,规定出每一层是要达到什么目的,经过这个方法论健身出来的数仓,在数据存储以及数据的查询及数据的共享等方面,都会有很好的效果;
四. 数仓建设的核心(重中之重)
在上面的第三节中,了解了数仓的建设流程,流程中有几个步骤是非常重要的,也是数仓建设的核心步骤,这节开始学习数仓建设的方法论,分层架构,维度设计,事实表设计等内容;
五. 数仓建设好后的其他一些问题
项目分配与安全
建立性能基准
六. 数仓性能优化
数仓优化涉及两方面,一方面是数仓表的优化,因为表结构或层次设计不合理导致,参考表设计规范; 另一方面是数据查询优化
ps:这些优化都是从阿里官方文档抄过来的,学会这些内容后在面试时有很大的优势;