序
看到标题,可能很多小伙伴都会疑惑,为什么笔者把数仓模型设计也纳入了数据分析师的成长体系之中,因为可能大多数公司会有单独的数仓部门,分析师只需要通过数仓提供的库表进行统计分析即可。不过,你是否遇到过以下的问题:
1、从原始的日志层提取数据,需要写复杂的逻辑,执行的时候也需要消耗很多的服务型性能去计算;
2、数仓进行初步分分层构建,但是构建的中间层并不满足业务分析需求,需要提需求增加统计指标或者自己写sql从底层捞;
从这两个常见的问题中可以发现,虽然有专门的数据仓库部门,可以保证日志数据准确、完整的入库,也会制定规范,并且构建一些基础的中间层,但问题的核心是在于数仓与业务方的“距离”,并且对于业务的理解和需求,分析师理解的相对更加透彻。所以,在一些企业中,数仓建设上是存在一些分工的,比如数仓的同学保证离线、实时数据流的稳定和准确入库,分析师负责构建中间层和应用层来满足业务方需求。
基于以上的描述,笔者从自身的工作经验中总结出一些作为分析师构建数仓模型所需要了解的知识点。
starting~~
数据仓库
数据仓库(Data Warehouse ,DW),引用百度百科的解释,是为企业所有级别的策略制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
四个主要特点
面向主题:与传统的面向事务的数据库不同,数据仓库具有较高的抽象性,从用户的需求出发,将不同平台的数据按照特定的主题进行划分和整合。主题可以理解为研究的对象,通过面向主题的组织数据,可以完整、统一的刻画出研究对象的所有业务数据。
数据集成:数据仓库的数据大多来自于传统数据库的,但是数据通常不是直接入库,而且需要先进行数据清洗。因为事务性数据库中的数据通常会存在脏数据,这些脏数据会对基于数仓进行的分析和挖掘造成影响。数据集成是数据仓库建设中最重要、复杂的步骤。
不可更新:数据仓库的数据主要为决策者提供数据依据。决策依据的数据是不允许修改的。所以对于入库到数据仓库的数据,用户只能查询和分析,不可以修改。
随时间不断变化:数据仓库数据会随时间变化而定期更新,不可更新是针对应用而言,即用户分析处理时不更新数据。简单理解是,传统数据库定期将数据写入到数据仓库中的对应时间分区内,而不修改历史分区的数据。数据仓库中的表通常会有生命周期,对于超过生命周期的分区数据,一般会删除或者改变数据存储结构单独存储。
与传统数据库区别
从数据仓库的主要特点可以看出其与传统的数据库差异;