数仓:核心概念,数仓系统(ETL,数仓分层,数仓建模),数仓建模方法(星型模型,雪花模型,星座模型)和步骤

 数仓建模的核心概念

  • 事实表(Fact Table)

    • 存储业务过程的度量值(如销售额、订单数量等)。

    • 通常包含外键,用于关联维度表。

  • 维度表(Dimension Table)

    • 存储描述性信息(如时间、地点、产品等)。

    • 用于对事实表中的数据进行分类和分析。

  • 粒度(Granularity)

    • 定义事实表中每一行数据的详细程度(如按天、按订单、按交易等)。

    • 粒度越细,数据量越大,分析能力越强。

  • 指标(Metrics)

    • 业务分析中需要计算的数值(如销售额、利润率等)。

    • 通常存储在事实表中。

数仓

即数据仓库, Data WareHouse,简称DW

数据仓库是面向分析集成化数据平台,分析的结果给企业提供决策支持

应用场景: 满足企业中所有数据的统一化存储,通过规范化的数据处理来实现企业的数据分
析应用。
4大特点
  1. 面向主题(Subject-Oriented)

    围绕特定的主题或业务领域(如销售、客户、产品等)组织数据
  2. 集成性(Integrated)

    从多个不同的数据源集成数据。
  3. 非易失性(Non-Volatile)

    数据仓库中的数据通常是只读的,一旦数据被加载到数据仓库中,就不会被频繁修改或删除。
  4. 时变性(Time-Variant)

    按时间顺序存储数据,能够反映历史变化。数仓是一个持续维护建设的东西。 站在时间的角度,数仓的数据成批次变化更新。一天一分析(T+1) 一周一分析(T+7

数据库:面向业务划分数据 以业务流程为导向组织数据

数据仓库:面向主题划分数据 以分析需要为导向组织数据

数据仓库系统:数据从获取、存储到数据仓库、数据分析的所有部分

数据仓库系统

核心1: ETL

即数据的抽取, 转换, 装载

CRM: 客户关系管理系统

ERP:企业资源计划系统

Billing:计费系统

Supply Chain:供应链管理系统

Reporting:报告系统

Visualization:数据可视化工具

BI: 商业智能

核心2:数仓分层

将各种数据的处理流程进行规范化。

分3层是: 数据源层, 数据仓库层,  数据集市层

分为5层时,把数据仓库层细分为: 明细数据层, 基础数据层, 服务数据层

即: 数据源层, 明细数据层, 基础数据层, 服务数据层,  数据集市层

ODS(Operational Data Store)层
  • 功能:ODS层是数据源层(也叫贴源层),主要用于存储从各个业务系统(如CRM、ERP等)抽取的原始数据。

  • 特点:数据通常是近实时的,保留较短的周期,结构上与源系统基本一致。

  • 用途:用于支持日常操作和简单的查询。

DW层(Data Warehouse Layer)

数据仓库层: 是核心的数据存储层,负责存储经过清洗、转换和集成的数据

DW层分为

1. DWD明细数据层(Detail Data Layer)

原始数据或经过初步清洗的详细数据

  • 数据粒度最细,通常是事务级别的数据。

  • 数据保留较完整的历史记录,支持细粒度的分析和回溯。

  • 用途

    • 为上一层提供详细的原始数据。

    • 支持对历史数据的深度分析和挖掘

2. DWB基础数据层(Base Data Layer)

存储经过进一步清洗、整合和建模的数据。

  • 经过ETL处理,去除了冗余和不一致。

  • 数据结构更加规范,通常按照主题或业务需求进行建模

  • 数据粒度较明细层稍粗,但仍保留较高的细节。

  • 用途

    • 为上一层提供一致、准确的基础数据。

    • 支持跨业务线的数据整合和共享。

3. DWS服务数据层(Service Data Layer)

存储为特定业务场景或应用服务的数据。

  • 特点

    • 数据经过进一步的汇总、聚合和优化,适合快速查询和分析。

    • 数据粒度较粗,通常是按业务需求定制的汇总数据

    • 数据结构针对特定应用场景进行优化,支持高性能访问。

  • 用途

    • 为前端应用(如报表、BI工具、数据服务)提供直接可用的数据。

    • 支持实时查询、报表生成和业务决策。

DM(Data Mart)层

  • 功能:数据集市层,存储面向特定部门或业务线的数据。

  • 特点:数据通常是DWD或DWS层数据的子集,针对特定需求进行优化。

  • 用途:用于支持部门级的分析和决策。

核心3: 数仓建模

是设计数据仓库结构的过程

数仓建模的方法

星型模型

雪花模型 

星座模型

数仓建模的步骤

  • 需求分析

    • 了解业务需求,明确分析目标和数据范围。

    • 确定需要分析的业务过程(如销售、库存、客户等)。

  • 数据源分析

    • 确定数据来源(如业务系统、日志、外部数据等)。

    • 分析数据的结构、质量和更新频率。

  • 概念模型设计

    • 设计高层次的数据模型,确定事实表和维度表。

    • 确定业务过程的度量值和维度属性。

  • 逻辑模型设计

    • 细化概念模型,定义表结构、字段类型和关系。

    • 选择适合的建模方法(如星型模型、雪花模型)。

  • 物理模型设计

    • 根据逻辑模型设计具体的数据库表结构。

    • 考虑性能优化(如分区、索引、存储格式等)。

  • ETL 设计

    • 设计数据抽取、转换和加载(ETL)流程。

    • 确保数据从源系统到数据仓库的准确性和一致性。

  • 测试与优化

    • 测试数据仓库的性能和数据质量。

    • 根据测试结果优化模型和 ETL 流程。

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

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

相关文章

【靶机渗透实战】AI:WEB:1

靶机下载官网AI: Web: 1 ~ VulnHub 靶机描述 Difficulty: IntermediateNetwork: DHCP (Automatically assign)Network Mode: NATThis box is designed to test skills of penetration tester. The goal is simple. Get flag from /root/flag.txt. Enumerate the box, get low…

MATLAB中contains函数用法

目录 语法 说明 示例 查找文本 使用模式进行搜索 匹配列表中的任何文本 忽略大小写 确定字符向量中是否包含子字符串 contains函数的功能是确定字符串中是否有模式。 语法 TF contains(str,pat) TF contains(str,pat,IgnoreCase,true) 说明 如果 str 包含指定的模…

【limit 1000000,10 加载很慢该怎么优化?】

在 SQL 数据库中,使用 LIMIT 子句进行分页查询时,如果偏移量(offset)很大,查询性能可能会变得非常差。 这是因为数据库需要扫描和跳过大量的记录才能到达所需的起始位置,然后再取出所需的记录数。 例如,LIMIT 1000000, 10 表示跳过前 100 万条记录,然后取接下来的 10…

Python基于 Flask 创建简单Web服务并接收文件

在全部网口上创建web服务, 监听8080端口关闭debug模式GET时返回HTML界面, 用于提交文件POST到 /upload 时, 从接收的 file 变量中读取文件, 并传递给 opencv 解析为 image 对象 from flask import Flask, request, redirect, url_for import os import cv2 import numpy impor…

zookeeper的zkCli.sh登录server报错【无法正常使用】

如果zookeeper使用zkCli.sh登录的时候老是频闪,没有办法正常使用,大概率是与java的版本不兼容 [zookeeperPostgreSQL bin]$ ./zkCli.sh Connecting to localhost:2181 2025-02-05 19:23:53,933 [myid:] - INFO [main:Environment100] - Client envir…

初始JavaEE篇 —— Spring Web MVC入门(下)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 初始JavaEE篇 —— Spring Web MVC入门(上) 在上篇文章中,我们学习了一些注解的使用、Postman模…

【verilog】函数clogb2的解读

最近经常看到clogb2函数。 源代码如下所示。 function integer clogb2; input [31:0] value; reg [31:0] tmp; reg [31:0] rt; begin tmp value - 1; for (rt 0; tmp > 0; rt rt 1) tmp tmp >> 1; clogb2 rt; end endfunction 这个函数的意思是:这段…

鸿蒙app开发中 tab 切换的时候 里面的子组件如何在页面出现的时候 就请求数据

解决方案 使用 鸿蒙提供的 onVisibleAreaChange 就是页面一出现就请求这个回调 .onVisibleAreaChange([0.0, 1.0], (isVisible: boolean, currentRatio: number) > {console.info(Test Text isVisible: isVisible , currentRatio: currentRatio)if (isVisible &am…

c/c++蓝桥杯经典编程题100道(19)质因数分解

汉诺塔问题 ->返回c/c蓝桥杯经典编程题100道-目录 目录 汉诺塔问题 一、题型解释 二、例题问题描述 三、C语言实现 解法1:递归法(难度★) 解法2:迭代法(难度★★★) 四、C实现 解法1&#xff1…

Linux:线程的互斥与同步

一、买票的线程安全 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。 但有时候,很多变量都需要在线程间共享,这样…

ESP学习-1(MicroPython VSCode开发环境搭建)

下载ESP8266固件:https://micropython.org/download/ESP8266_GENERIC/win电脑:pip install esptools python.exe -m pip install --upgrade pip esptooo.py --port COM5 erase_flash //清除之前的固件 esptool --port COM5 --baud 115200 write_fla…

什么是多光谱环形光源

多光谱环形光源是一种用于机器视觉、工业检测和科学研究的光源设备,能够提供多种波长的光,适用于不同材料和表面的检测需求。以下是其关键特点和应用: 关键特点 多光谱输出:可发射多种波长的光(如可见光、红外光、紫外…

什么是UV环形光源

UV环形光源是一种用于特定照明需求的设备,以下是其关键点: 定义 UV环形光源:发出紫外光的环形照明装置,常用于机器视觉、工业检测等领域。特点 均匀照明:环形设计确保光线均匀分布,减少阴影。 高亮度&…

泛型的原理、优点以及可能存在的问题

泛型的原理 泛型是Java引入的一种特性&#xff0c;允许在定义类、接口或方法时使用类型参数&#xff0c;从而实现对不同类型的通用操作。泛型的核心原理是类型参数化和类型擦除。 类型参数化&#xff1a;泛型允许在定义类、接口或方法时使用类型参数&#xff08;如<T>&…

Agents Go Deep 智能体深入探索

Agents Go Deep 智能体深入探索 核心事件 OpenAI发布了一款先进的智能体“深度研究”&#xff0c;它能借助网络搜索和推理生成研究报告。 最新进展 功能特性&#xff1a;该智能体依据数百个在线资源生成详细报告&#xff0c;目前仅支持文本输出&#xff0c;不过很快会增加对图…

Kubernetes (k8s) 常用指令速查表

以下是一份 Kubernetes (k8s) 常用指令速查表&#xff0c;涵盖集群管理、资源操作、故障排查等场景&#xff0c;适合日常运维和开发使用&#xff1a; 1. 集群与节点管理 命令说明kubectl cluster-info查看集群基本信息kubectl get nodes查看所有节点状态kubectl describe node…

【ubuntu24.04】 强制重启导致大模型的磁盘挂载出错

挂载NTFS文件系统出错 各种模型放在了这个机械硬盘上&#xff0c;虽然速度慢&#xff0c;但是好在容量大。大模型在工作&#xff0c;但是程序看起来有问题&#xff0c;导致系统卡死了&#xff0c;然后我重启了&#xff0c;然后报错&#xff1a;wrong fs type bad option &…

【鸿蒙开发】第三十六章 状态管理 - V1V2混用和迁移指导

目录​​​​​​​ 1 自定义组件混用场景指导 1.1 概述 1.2 状态管理装饰器总览 状态管理V1的装饰器 状态管理V2的装饰器 状态管理装饰器支持的数据类型总览 1.3 限制条件 1.3.1 V1和V2的装饰器不允许混用 1.V1的自定义组件中不可以使用V2的装饰器 2.V2的自定义组件…

1.14学习总结

日常刷题单 刷了题目后&#xff0c;对于排序方法更加熟练&#xff0c;手搓代码的速度也得到了提高。 感觉字符串还不熟练&#xff0c;高精度更是云里雾里&#xff0c;上升空间极大。 同时看见今晚有个入门难度的测试&#xff0c;去练了练手&#xff0c;想看看自己是什么成分&…

vscode环境搭建

目录 一、安装VSCode 二、安装Python 三、安装Anaconda&#xff08;可选&#xff0c;但推荐&#xff09; 四、安装深度学习相关库 五、配置VSCode 六、 结果可视化 一、安装VSCode 访问官网下载&#xff1a;从VSCode官方网站下载适合你操作系统的安装包。安装&#xff1a;运行安…