数仓的了解

数仓的基本概念

什么是数仓

1.数仓:存储数据的仓库,主要是面相于主题,进行数据分析工作,主要是存储历史过去的数据,通过对过去历史数据分析从而对未来提供决策支持
2.数仓最大的特征:即不生产数据,也不消耗数据,数据来源与各个数据源

数仓的特征

  1. 面向主体:分析什么,什么就是主体
  2. 集成性:数据的种类,来源比较多 ,需要将各个来源的数据全部的集中在一起在这里插入代码片
  3. 非易失性:存储的都是过去既定发生数据,这些数据一般不会出现变更
  4. 时变性:随着时间的推移,原有分析方案可能无法满足分析要求,需要更新分析手段以及数据也会进行新增操作

OLAP和OLTP

对比需求OLTPOLAP
功能面向交易的事物处理面向分析查询
设计面向业务面向主体
数据最新数据,二维数据历史数据,多维数据
存储M,G(存储单位)T,P,E
响应时间
用户业务操作人员管理决策人员

ETL:抽取,转换,加载

狭义上ETL:
从ODS层将数据抽取处理啊,对数据进行清洗转换处理,将处理后数据加载到DW层过程
宽泛上ETL:
整个数仓全过程包含从数据源到ODS,从ODS到DW到DA过程DA到业务库

维度分析基本操作

维度:

分析问题的角度,当面对一个主题进行分析到时候,可以从不同到角度来分析,而这些角度其实就是维度

分类:

定性维度:在编写SQL的时候,这些维度对应字段会放置SQL的group by或则窗口函数中
定量维度:主要指求某一个具值相关内容,或某个范围的维度,在编写SQL的时候,这些维度对应字段会放置在SQL的where条件中

维度下钻和上卷:

一天为标准,需要进行上卷统计 周 月 季度 年 下钻统计 小时
从分析角度,不管下钻和上卷,其实都是增加了细化维度而已,统计维度变多了而已

指标

衡量事物发展的标准,也叫度量

数仓建模

  • 数仓建模中,主要有两种建模方案:三范式建模,维度建模
    三范式建模:三范式建主要是应用在关系型数据库中,三范式建模规定,在创建一个表的时候,这个表应该有一个主键,在构建的过程中,尽可能避免数据冗余存储问题
    维度建模:
    维度建模主要是应用OLAP数据库中(数仓环境中),维度建模规定,在构建表的时候,以能满足分析要求前提,如果能降低分析难度,即使出现了一些数据冗余问题,也不影响,而且主键也可以不存在
维度建模的两个核心概念:事实表和维度表
事实表
事实指的就是分析的主题,而事实表就是要分析的主题对应的表
一般都是通过事实表进行指标统计操作,在统计过程中,需要结合着各个维度,此时可能需要其他维度表参与
维度表
事实表中外键所对应的表其实都是维度表。
在进行统计分析的时候,除了使用事实表以外,还需要结合着一些其他表进行统计分析,而		这些表其实就是维度表。
维度退化操作
将维度信息数据从维度表抛离处理,将这些信息冗余到事实表中,这个过程称为维度退化
数仓发展模型
星型模型
只有一个分析的主体,也就是只有一个事实表,在事实表周围围绕了多个维度表,而且维度表于维度表之间没有任何联系
这种模型,一般是数仓发展初期的时候最容易产生的模型
雪花模型
只有一个分析的主题,也就是只有一个事实表,在事实表周围围绕了多个维度表,维度表可以接着关联其他的维度表
这种模型一般是数仓发展走歪了,做容易产生模型,这种模型在数仓构建过程中,尽量的表面出现,主要原因,这种模型不利于维护,而且会加大分析需求难度
星座模型
有多个分析的主题,也就是说有了多个事实表,在每个事实表周围都围绕了多个维度表,维度表和维度表在条件符合的情况下,是可以共享维度的;
这种模型,一般是数仓发展中,后期的时候最容易产生模型
缓慢渐变维

作用:是为了记录数据历史表更行为的

  • SCD1:最简单的记录方案:不维护历史变更数据,每次都是直接将原来的数据覆盖掉,仅适合于错误数据处理工作
  • SCD2(拉链表):采用拉链表的形式维护历史变化信息,采取方案:在原有表增加二个字段(start_time,end_time),通过这两个字段,来维护用户每一段变化的数据经历周期,从而形成拉链数据过程。
    弊端:只要有其中一个字段发生变更,都需要对整条数据重新记录,冗余程度比较高
    好处:实现比较简单,可以非常简单的维护更多的历史版本数据
  • SCD3:当数据发生变更后,对表结构进行处理,可以新增一类数据,用于记录最新变更数据即可
    适用于:空间不足,需要记录版本也不会特别多,可应采用scd3模型,否则建议都采集scd2拉链表方案
    好处:冗余变小了
    弊端:无法维护太多历史版本(3,5个左右),实现较为繁琐,不利于维护

数仓分层介绍

数仓分层原因:分层本质是认为划分操作,可以将某几个或者某几个表划分在各个层次中,分层主要的目的:明确各个层次作用(任务分工)利用后续维护工作

ODS层:源数据层

作用:对接数据源,用于将数据源中数据采集到ODS层,会和数据源保持相同粒度(将数据源中数据完整拷贝到ODS层)
注意:在生产中,有可能会出现在ODS层之前,会对数据进行预处理操作

DW层:数据仓库层

作用:对数据进行统计分析操作,构建同一宽表统计结果数据,数据来源于ODS层
注意:磁层主要会根据分析主体,形成主题统计宽表,服务DA层

DA(app层):数据应用层

作用:存储分析的结果表,会对DW层统计宽表,根据需求要求,从宽表中获取想要的数据,将这些数据灌入DA层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值