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

news2024/11/16 12:35:31

数据仓库

数仓主要特征

  • 面向主题:每个需求和表都属于一个主题,可以用主题来对数仓的表分门别类
  • 集成性:将异构数据源,比如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层。
特点交易事实周期快照事实累积快照事实
时间/时期时刻时期时间跨度的多个时点
粒度每行代表一个交易事件每行代表一个时间周期每行代表一个业务周期
事实表加载新增新增新增和修改
事实表更新不更新不更新新事件产生时更新
时间维业务日期时期末多个业务过程的完成日期
事实交易活动时间周期内的绩效限定多个业务阶段内的绩效

维度建模_维度表

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

  • 【高基数】维度数据:一般是用户资料表,商品资料表类似的资料表,数据量可能是千万级或上亿级
  • 【低基数】维度数据:一般是配置表,比如枚举值对应的中文含义,或者日期维度,地理维度,数据量可能只有个位数或者几千条。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink系列文档-(YY12)-窗口计算

1 窗口基本概念 1.1 概述 窗口,就是把无界的数据流,依据一定规则划分成一段一段的有界数据流来计算; 既然划分成有界数据段,通常都是为了"聚合"; Keyedwindow重要特性:任何一个窗口&#xff0…

游戏开发36课 cocoscreator scrollview优化

在cocoscreator内,ScrollView控件封装的挺完美的了,不过对于一些对性能要求比较高的场景,会存在问题,以top100排行榜排行榜举例子 1、应用卡顿甚至崩溃 按照官方用例使用ScrollView,插入100个玩家的item,理…

离线安装harbor容器镜像仓库(harbor-v2.3.5)

记录:354 场景:在CentOS 7.9操作系统上,离线部署harbor容器镜像仓库集群,使用Redis为外部缓存、使用PostgreSQL为外部数据库、使用Ceph为共享存储、使用nginx为harbor的负载均衡、使用Keepalived为集群高可用、使用docker-ce操作…

【专业术语】(计算机 / 深度学习与目标检测 / 轨道交通)

专业术语-计算机 / 深度学习与目标检测 / 轨道交通一、 计算机1 IDE2 API3 CUDA Driver API3.1 cuInit - 驱动初始化3.2 关于context,有两种:3.3 CUcontext4 RuntimeAPI5 Memory5.1 关于内存,有两大类:5.1.1 CPU内存,称…

[附源码]Python计算机毕业设计Django考试系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

FISCO BCOS(二十五)———多机部署

一、基础环境搭建 1、查看当前是否安装了ssh-server服务 dpkg -l | grep ssh2、安装ssh-server服务 sudo apt-get install openssh-server3、修改配置文件"/etc/ssh/sshd_config" 4、重启openssh-server root@FISCOBCOS01:~# sudo /etc/init.d/ssh restart5、查看…

高数 |【2020数一真题】部分错题及经典题自用思路整理

T1:积分限与被积函数都等价为无穷小 T2:不连续一定不可导 T3:可微的定义 T4:收敛半径 T6:空间直线与向量 法一:

WINDOWS7-11磁盘分区教程

首先,打开计算机管理界面 以windows11为例,在任务栏搜索框内,输入“计算机管理界面” 点击打开。 然后选择存储-》磁盘管理 到这里之后,我们需要选中一个磁盘,压缩卷分出来一部分空间。为新分区做准备。 以E盘为例&a…

MapStruct与lombok加载顺序问题与annotationProcessorPaths的关系?

MapStruct是什么? MapStruct is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention over configuration approach.——https://mapstruct.org/ 从官方定义来看,MapStruct类似于我…

C语言Socket编程,实现两个程序间的通信

文章目录server和client通信流程图实现两个程序间的通信1.服务端server2.客户端client3.怎么运行呢?4.重写代码已剪辑自: https://www.cnblogs.com/fisherss/p/12085123.html server和client通信流程图 在mooc上找到的,使用Socket客户端client和服务端server通信的…

17-JavaSE基础巩固练习:Math类API两道数学算法水题

两道算法水题(一) 一、判断质数 判断一个数是否为一个质数。 1、以前的写法 package com.app.demo26_math_api;public class Test1 {public static void main(String[] args) {/*判断n(任意整数)是否为一个质数:以前的写法:是用n对2~n之间…

JavaWeb Filter 过滤器

参考:JavaWeb过滤器(Filter)详解 1、简介 顾名思义就是对事物进行过滤的,在Web中的过滤器,当然就是对请求进行过滤,我们使用过滤器,就可以对请求进行拦截,然后做相应的处理,实现许多特殊功能。…

阿里云部署应用

安装jdk 查看已安装版本 rpm -qa | grep java yum命令查找JDK1.8软件包 yum -y list java-1.8* 安装列表中的JDK1.8软件包 yum -y install java-1.8.0-openjdk-devel.x86_64 java -version 配置环境变量 vim /etc/profile JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.…

三、内存管理 (二)虚拟存储器

目录 2.1虚拟内存的基本概念 2.2内存分配策略 2.2.1驻留集大小 2.2.2固定分配局部置换 2.2.3可变分配全局置换 2.2.4可变分配局部置换 2.3地址变换机构 2.3.1页表机制 2.3.2预调页策略和请求调页策略 2.3.3缺页中断机构 2.3.4对换区与文件区 2.3.5页面置换算法 …

搭建springWeb保姆级教程

经过我们对mybatis和spring框架的学习,我们即将要用框架进行前后端数据交互,已经脱离了那种用servlet的方式进行数据传输,今天让我们来搭建最基本的springweb框架!!! 1.创建一个web项目 1. 2. 选择一个we…

自定义线程实现c++代码回调run方法

目录 pthread_create函数介绍 前面写过一篇文章《Thread类的start()方法创建线程的底层分析》,这次来自定义一个线程,并实现在底层创建内核线程来执行用户代码。 pthread_create函数介绍 在这之前,先熟悉下Linux中创建内核线程函数pthread…

【计算机视觉】 摄像机标定

摄像机标定 齐次坐标 齐次坐标,将欧氏空间的无穷远点,与投影空间中有实际意义的消失点,建立起映射关系。 把齐次坐标转化为笛卡尔坐标的方法:是前面n-1个坐标分量分别除以最后一个分量即可 一些解释和性质: 比较好的…

Linux最常用命令用法总结(精选)

1. su 普通用户切换root用户 ubuntuubuntu20:~$ su Password: rootubuntu20:/home/ubuntu# exit exit ubuntuubuntu20:~$ 2. clear 清除当前终端显示的输出快捷键ctrlL键 3. cd 改变目录 ubuntuubuntu20:~/workspace$ cd .. ubuntuubuntu20:~$ cd / ubuntuubuntu20:/$ c…

docker下搭建redis集群

1. 环境准备 准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。学习docker基础知识可以参考这篇博文 安装好并启动docker后就可以开始搭建redis了 2. docker容器下安装redis 本篇文章…

数据链路层(必备知识)

文章目录1、数据链路层的作用2、认识以太网<1>以太网帧格式<2>认识MAC地址<3>认识MTU<4>查看硬件地址和MTU3、ARP协议<1>什么是ARP协议<2>ARP数据报格式<3>ARP协议的工作机制4、其他重要协议或技术<1> DNS<2>NAT技术1、…