数仓:核心概念,数仓系统(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.rhkb.cn/news/17603.html

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

相关文章

jsp页面跳转失败

今天解决一下jsp页面跳转失败的问题 在JavaWeb的学习过程中&#xff0c;编写了这样一段代码&#xff1a; <html> <body> <h2>Hello World!</h2><%--这里提交的路径&#xff0c;需要寻找到项目的路径--%> <%--${pageContext.request.context…

Linux Mem -- Where the mte store and check in the real hardware platform

目录 1 前言 2 MTE tag分类 3 Address tag 4 Memory tag 5 Tag Check 6 Cortex-A710 和 CI-700 系统示例&#xff1a; 1 前言 ARM的MTE允许分配、设置、比较一个 4bit的allocation tag 为16字节粒度的物理地址。当对MTE有一定了解后&#xff0c;应该会产生如下疑问&#…

Day1 25/2/14 FRI

【一周刷爆LeetCode&#xff0c;算法大神左神&#xff08;左程云&#xff09;耗时100天打造算法与数据结构基础到高级全家桶教程&#xff0c;直击BTAJ等一线大厂必问算法面试题真题详解&#xff08;马士兵&#xff09;】https://www.bilibili.com/video/BV13g41157hK?p3&v…

Windows环境管理多个node版本

前言 在实际工作中&#xff0c;如果我们基于Windows系统开发&#xff0c;同时需要维护老项目&#xff0c;又要开发新项目&#xff0c;且不同项目依赖的node版本又不同时&#xff0c;那么就需要根据项目切换不同的版本。本文使用Node Version Manager&#xff08;nvm&#xff0…

前端包管理器的发展以及Npm、Yarn和Pnpm对比

在现代前端开发中&#xff0c;包管理器是不可或缺的核心工具。随着 JavaScript 生态的快速发展&#xff0c;开发者经历了从 npm 一统天下到 Yarn 挑战格局&#xff0c;再到 pnpm 创新突破的技术演进。这里将对三种主流包管理器&#xff08;npm/Yarn/pnpm&#xff09;进行全方位…

leetcode 2915. 和为目标值的最长子序列的长度

题目如下 数据范围 本题就是典型的背包问题target就是容量&#xff0c;nums[i]就是第i个物品的重量。其实就是选最多的物品使得背包刚好装满。 令f(i,j)为当考虑到i - 1物品时刚好装到j重量的物品数。 当j > nums[j]时 有f(i,j) max(f(i - 1,j - nums[i - 1]) 1,f(i -…

ASP.NET Core 面试宝典【刷题系列】

文章目录 引言1、什么是 dot net core 的 startup class?2、什么是中间件?3、application builder 的 use 和 run 方法有什么区别?4、dot net core 管道里面的map拓展有什么作用?5、dot net core 里面的路径是如何处理的?6、如何在 dot net core 中激活 session 功能?7、…

BFS 走迷宫

#include<bits/stdc.h> using namespace std; int a[100][100],v[100][100];//访问数组 n,m<100 struct point {int x;int y;int step; }; queue<point> r;//申请队列 int dx[4]{0,1,0,-1};//四个方向 右下左上 int dy[4]{1,0,-1,0}; int main() { /* 5 4 1 …

给压缩文件加密码的5种方法(win/mac/手机/网页端)

把文件加密压缩&#xff0c;一方面能有效保护个人隐私与敏感信息&#xff0c;防止数据在传输或存储过程中被窃取、篡改。另一方面&#xff0c;压缩文件可减少存储空间占用&#xff0c;提升传输速度&#xff0c;方便数据的存储与分享。以下为你介绍5种常见的加密压缩方法。 一、…

IoTDB 导入数据时提示内存不足如何处理

问题现象 IoTDB 导入数据时提示内存不足&#xff0c;该如何处理&#xff1f; 解决方案 数据导入脚本会在触发内存不足的时候主动进行重试。当遇到此问题时&#xff0c;用户不用做任何操作&#xff0c;脚本也可以正确进行处理。如果想从根源减少此类提示&#xff0c;可以按照下…

自有证书的rancher集群使用rke部署k8s集群异常

rancher使用自签域名&#xff0c;或者商业证书容易踩到的坑。 最开始的报错&#xff1a; docker logs kubelet‘s id E0214 13:04:14.590268 9614 pod_workers.go:1300] "Error syncing pod, skipping" err"failed to \"StartContainer\" for …

计算机网络结课设计:通过思科Cisco进行中小型校园网搭建

上学期计算机网络课程的结课设计是使用思科模拟器搭建一个中小型校园网&#xff0c;当时花了几天时间查阅相关博客总算是做出来了&#xff0c;在验收后一直没管&#xff0c;在寒假想起来了简单分享一下&#xff0c;希望可以给有需求的小伙伴一些帮助 目录 一、设计要求 二、…

【漫话机器学习系列】091.置信区间(Confidence Intervals)

置信区间&#xff08;Confidence Intervals&#xff09;详解 1. 引言 在统计学和数据分析中&#xff0c;我们通常希望通过样本数据来估计总体参数。然而&#xff0c;由于抽样的随机性&#xff0c;我们不可能得到精确的总体参数&#xff0c;而只能通过估计值&#xff08;如均值…

朝天椒USB服务器:解决加密狗远程连接

本文探讨朝天椒USB服务器用Usb Over Network技术&#xff0c;解决加密狗在虚拟机、云主机甚至异地的远程连接问题。 在企业数字化转型的浪潮中&#xff0c;加密狗作为防止软件盗版的重要手段&#xff0c;广泛应用于各类软件授权场景。然而&#xff0c;随着企业超融合进程不断加…

Linux 配置 MySQL 定时自动备份到另一台服务器

Linux 配置 MySQL 定时自动备份到另一台服务器 前言1、配置服务器通信1.1&#xff1a;配置过程 2、编写自动备份sh脚本文件3&#xff1a;设置定时自动执行 前言 此方案可使一台服务器上的 MySQL 中的所有数据库每天 0 点自动转储为 .sql 文件&#xff0c;然后将文件同步到另一…

【网络编程】之Udp网络通信步骤

【网络编程】之Udp网络通信步骤 TCP网络通信TCP网络通信的步骤对于服务器端对于客户端 TCP实现echo功能代码实现服务器端getsockname函数介绍 客户端效果展示 对比两组函数 TCP网络通信 TCP网络通信的步骤 对于服务器端 创建监听套接字。&#xff08;调用socket函数&#xff…

RV1126解码(1)

比如我们现在要拉一个流&#xff0c; 拉一个rtmp或者拉一个rtsp的流&#xff0c;让它显示到显示屏上面去&#xff0c;此时就要用到我们这个解码模块了&#xff0c;把它个解出来并且发到其他模块去。 主要功能是通过FFMPEG的API读取每一帧的音视频数据&#xff0c;并通过RV1126的…

js实现点击音频实现播放功能

目录 1. HTML 部分&#xff1a;音频播放控件 2. CSS 部分&#xff1a;样式设置 3. JavaScript 部分&#xff1a;音频控制 播放和暂停音频&#xff1a; 倒计时更新&#xff1a; 播放结束后自动暂停&#xff1a; 4. 总结&#xff1a; 完整代码&#xff1a; 今天通过 HTML…

kotlin标准库里面也有很多java类

Kotlin 标准库中确实存在许多与 Java 类直接关联或基于 Java 类封装的结构&#xff0c;但这并不是“问题”&#xff0c;而是 Kotlin 与 JVM 生态深度兼容和互操作性的体现。以下从技术原理和设计哲学的角度详细解释&#xff1a; 一、Kotlin 与 JVM 的底层关系 Kotlin 代码最终…

【DeepSeek】从文本摘要到对话生成:DeepSeek 在 NLP 任务中的实战指南

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…