• 【概念】数据仓库和数仓建模


    数据仓库

    数仓主要特征

    • 面向主题:每个需求和表都属于一个主题,可以用主题来对数仓的表分门别类
    • 集成性:将异构数据源,比如MySQL和服务器埋点日志,统一转换成结构化的hive表数据存储到ODS层
    • 非易失性:对历史的所有数据的存储需要稳定性,使用非易失的介质(HDFS)来保存
    • 时变性:数据会增量增加,数据分析的需求可能会发生变化,分析的过程也会发生调整

    区别

    数据库和数据仓库的区别

    数据库系统作为数据管理的主要手段,主要用于操作型处理

    • 操作型处理,也叫联机事务处理OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统。
    • 主要针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改
    • 特点是低延迟

    数据仓库主要用于分析型处理

    • 分析型处理,也叫联机分析处理OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策
    • 主要是查询操作
    • 特点是高延迟

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

    数据仓库和数据集市的区别

    数据仓库:体量和概念范围更【广】,是面向整个公司的,比如整个保险公司的表都是数据仓库的,数据颗粒度更【细】。

    数据集市:是数据仓库的【子集】,比如按部门,有理赔数据集市,核保集市。。也可以理解为按不同【主题】的集市,一般有维度退化和汇总。


    数仓的分层架构

    在这里插入图片描述
    分为三层:
    ODS源数据层(采集源数据)
    ② DW数据仓库层(数据清洗与数据分析)
    ③ DA数据应用层(把分析结果对接外部应用)



    数仓建模

    数据仓库建模有2种方式:三范式建模维度建模

    在这里插入图片描述

    三范式

    • 第一范式,1NF,【原子】性,字段不可分;
    • 第二范式,2NF,【唯一】性, 有主键,非主键字段依赖主键;一个表只说明一个事物;
    • 第三范式,3NF,非主键字段之间【不能】相互依赖;
    • 对于三范式来说,尽量一个表只侧重一个对象的属性,尽量不要有冗余的信息

    维度建模

    • 允许一定的字段信息冗余,避免了再join,以【空间】换【时间】
    • 宽表的数据可以复用,避免多次的join

    维度和指标

    指标

    是衡量事务发展的标准,如价格,销量等;
    指标可以求和、求平均值等计算

    指标又可以细分为绝对数值相对数值

    • 绝对数值反映具体的大小和多少,如价格、销量、分数等;
    • 相对数值反映一定的程度,如及格率、购买率、涨幅等

    维度

    指事务的特征,如颜色、区域、时间等

    维度又可以细分为定性维度定量维度

    • 定性维度:字符类型的特征,比如区域维度包括全国各省份;
    • 定量维度:数值类型的特征,如价格区间、销量区间等,如价格区间维度分为0–100、100-1000两个区间,可以按价格区间维度来对指标进行分析

    分层与分级

    • 时间维度
      • 一个层次的4个级别:年、月、日、小时
    • 地区维度
      • 从行政层次3个级别:省、市、县

    上卷和下钻

    • 自下而上粒度变粗,为上卷
    • 自上而下粒度变细,为下钻

    维度建模

    维度建模四步走

    1. 选择业务过程
    2. 声明粒度
    3. 确认维度
    4. 确认事实

    维度建模_事实表

    事实表可以分为3类:交易事实表周期快照事实表累积快照事实表、无事实事实表

    • 【交易】事实表,一般会同步到数仓中的ODS层或DWD层
    • 【周期快照】事实表,就是对【交易】事实表进行上卷。
    • 【周期快照】事实表在新零售数仓中对应DWS和DM层。
    特点交易事实周期快照事实累积快照事实
    时间/时期时刻时期时间跨度的多个时点
    粒度每行代表一个交易事件每行代表一个时间周期每行代表一个业务周期
    事实表加载新增新增新增和修改
    事实表更新不更新不更新新事件产生时更新
    时间维业务日期时期末多个业务过程的完成日期
    事实交易活动时间周期内的绩效限定多个业务阶段内的绩效

    维度建模_维度表

    维度表可以分为两类:高基数维度数据低基数维度数据

    • 【高基数】维度数据:一般是用户资料表,商品资料表类似的资料表,数据量可能是千万级或上亿级
    • 【低基数】维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维度,地理维度,数据量可能只有个位数或者几千条。
  • 相关阅读:
    unity自制循环匀速动画
    C语言学习-数组应用-扫雷(4.2)
    单片机学习笔记---LCD1602功能函数代码
    【练习】检测U盘并自动复制内容到电脑的软件
    Matlab:Matlab编程语言学习之常用运算操作符、常用函数(逻辑函数、运算函数、交互函数等)简介、使用方法之详细攻略
    DevOps | 如何快速提升团队软件开发成熟度,快速提升研发效能?
    【技能树笔记】网络篇——练习题解析(三)
    Kafka 之 KRaft —— 配置、存储工具、部署注意事项、缺失的特性
    hive入门到魔改-阶段一(hive概念&安装&初步使用)
    React——简便获取经纬度信息
  • 原文地址:https://blog.csdn.net/weixin_42322454/article/details/128176469