03. 数仓建模
数据仓库
数据仓库(Data Warehouse)
一个企业可能有几十个不同的交易处理系统:面向终端客户的网站,控制实体商店的收银系统,跟踪仓库库存,规划车辆路线,供应链管理,员工管理等。这些系统中每一个都很复杂,需要专人维护,所以系统最终都是自动运行的。这些
相比之下,数据仓库是一个独立的数据库,分析人员可以查询他们想要的内容而不影响

数据仓库中很多的内容都涉及到《分布式数据处理》,请自行参阅。
数仓特性
数据仓库能够极大地辅助商业智能决策,譬如年度销售目标的制定,需要根据以往的历史报表进行决策,不能随便制定。某电商平台某品牌的手机,在过去
面向主题
与传统的数据库不一样,数据仓库是面向主题的,那什么是主题呢?首页主题是一个较高乘次的概念,是较高层次上企业信息系统中的数据综合,归类并进行分析的对象。在逻辑意义上,他是对企业中某一个宏观分析领域所涉及的分析对象。
就是用户用数据仓库进行决策所关心的重点方面,一个主题通常与多个操作信息型系统有关,而操作型数据库的数据组织面向事务处理任务,各个任务之间是相互隔离的。
数据集成
数据仓库的数据是从原来的分散的数据库数据(
- 要统计源数据中所有矛盾之处,如字段的同名异议、异名同义、单位不统一,字长不统一等。
- 进行数据的综合和计算。数据仓库中的数据综合工作可以在原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。
时序数据
数据仓库的数据是随着时间的变化而变化的,数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最后被删除的整个生存周期中,所有的数据仓库数据都是永远不变的。
数据仓库的数据是随着时间变化而变化的,这是数据仓库的特征之一。这一特征主要有以下三个表现:
-
数据仓库随着时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉
OLTP 数据库中变化的数据,追加到数据仓库当中去,也就是要不断的生成OLTP 数据库的快照,经统一集成增加到数据仓库中去;但对于确实不在变化的数据库快照,如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。 -
数据库随着时间变化不断删去旧的数据内容。数据仓库内的数据也有存储期限,一旦过了这一期限,过期数据就要被删除。只是数据库内的数据时限要远远的长于操作型环境中的数据时限。在操作型环境中一般只保存有
60~90 天的数据,而在数据仓库中则要需要保存较长时限的数据(例如:5~10 年) ,以适应DSS 进行趋势分析的要求。 -
数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行从新综合。因此数据仓库的数据特征都包含时间项,以标明数据的历史时期。
不可变性
数据仓库的数据主要提供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的书库进过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。
因为数据仓库只进行数据查询操作,所以数据仓库当中的系统要比数据库中的系统要简单的多。数据库管理系统中许多技术难点,如完整性保护、并发控制等等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,他要求采用各种复杂的索引技术;同时数据仓库面向的是商业企业的高层管理层,他们会对数据查询的界面友好性和数据表示提出更高的要求。
建设难点
数据仓库建设难点:
- 数据孤岛、烟囱式重复建设 缺少公共数据的提炼和汇总,出现烟囱式重复建设,同时也加剧了数据孤岛的问题。
- 数据不一致 孤岛式的建设,缺少统一的组织及方法论,指标口径不统一、数据表级字段名不一致,数据有二义性
- 缺少统一模型规范 当不同业务之间有数据交叉的场景时,为了尽快响应业务需求,直接从其他业务明细层甚至原始数据层获取数据,不同的研发团队不同规范,造成模型设计不统一,复用性差。
- 效率差、响应慢 缺少公共聚合数据的沉淀和积累,每次新的需求都需要
5-7 天以上的研发,无法服用,产出时效差,数据质量低,资源消耗成本高居不下