数仓分层理论

2023-11-17

数据仓库

​ 在实际工作中,数仓分层、元数据管理、数据质量管理一直是一个持续优化的过程,我们公司业务也是在持续的做数仓的优化工作,在数据治理这方面还是欠缺很多的经验的。下面先简单整理了一下第一个理论部分的相关笔记。

数据仓库理论

数据仓库四大特征

  • 面向主题:较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象概念。

  • 集成的:从不同数据库、数据文件和不同日志中抽取的,既有内部数据,又有外部数据

  • 稳定的:主要是针对应用而言,数据一旦进入数仓之后,一般情况下保留较长时间,极少更新。

  • 反映历史变化的:数仓包含各粒度的历史数据。数仓的数据也会做定期的更新,以适应决策需要。

数据仓库作用

  • 整合业务数据,建立统一的数据中心;

  • 生成业务报表,了解企业的经营状况;

  • 辅助决策管理提供数据支持

  • 可以作为各个业务的数据源,形成业务数据互相反馈的良性循环;

  • 分析用户行为数据,通过数据挖掘来降低投入成本,提高投入效果;

  • 开发数据产品,直接或间接地为企业盈利

数据仓库与数据库的比较

  • 事务--是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;

  • 事务的四大特性:

  • 1 、原子性:事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做

  • 2 、一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。

  • 3 、隔离性:一个事务的执行不能其它事务干扰。

  • 4 、持续性:也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。

  • 数据库--OLTP(On-Line Transaction Processing 联机事务处理)

  • 对少数记录查询、修改;

  • 用户关心操作响应时间、数据安全性、完整性和并发性

  • 主要用于操作型处理

  • 数据仓库--OLAP(On-Line Analytical Processing 联机分析处理)

  • 对某些主题的历史数据分析、支持管理决策。

数据仓库和数据库对比:

  • 数仓用于解决企业级数据分析问题、管理和决策。

  • 数仓为分析数据而设计;数据库为捕获和存储数据设计

  • 数仓面向分析,面向主题设计的;数据库是面向事务设计的,属于操作型。

  • 数仓采用反范式设计(引入数据冗余来提高查询效率);数据库设计尽量避免冗余,一般采用符合范式规则设计。

  • 数仓较大,且数据来源于多个异构数据源,保留历史数据;数据库存储有限期限,单一领域业务数据。

  • 数仓面向主题设计;数据库面向事务设计;

数据集市

  • 数据仓库的某一部分,是按照部门或业务分部建立的反映各个子主题的局部性数据组织,也可以称为部门数据仓库。

  • eg商品销售中的数据仓库建立不同主题的数据集市:

  • 商品采购数据集市

  • 商品库存数据集市

  • 商品销售数据集市

数据仓库建模方法

ER模型(Entity Relationship)--在范式理论上符合3NF模型

  • 建立ER模型需要全面了解整个企业业务和数据

  • 实施周期非常长

  • 对建模人员的能力要求非常高

  • ER模型建设数仓是为整合数据,将各系统中数据以企业角度主题进行相似性组合和合并,并进行一致性处理,不能用于分析决策。建模步骤:

  • 高层模型

  • 中层模型

  • 物理模型

维度模型

  • 为分析需求服务,快速完成分析,并具有较好的大规模复杂查询的响应性能

  • 星型模型

  • 雪花模型

  • 维度模型设计步骤:

  • 1.选择需进行分析决策的业务过程

  • 2.选择数据的粒度

  • 3.识别维度表,包括维度属性,用于分析时进行分组和筛选。

  • 4.选择事实,确定分析需要衡量的指标

数据仓库分层

数据仓库是指一整套的数据建模、ETL(数据抽取、转换、加载)、作业调度等在内的完整理论体系流程。

数仓分层原因:

  • 清晰的数据结构

  • 将复杂的问题简单化

  • 减少重复开发

  • 屏蔽原始数据的异常

  • 数据血缘关系追踪

常见数据分层为3层:数据操作层、数据仓库层、数据应用层(数据集市层),正常情况下会根据业务或者开发人员经验划分为不同的层。

ODS(Operation Data Store 数据准备区):最原始的数据,即是最处接收的业务日志数据或者异构数据。

  • ODS来源包括:1.业务数据库,使用DataX,Sqoop等工具抽取;实时应用中,使用Canal监听Mysql的Binlog,实时接入变更的数据。

  • 埋点日志:key使用Flume定时抽取。

  • 其他数据源:第三方购买数据或网络爬虫数据。

DW(Data Warehouse 数据仓库层):包括DWD,DWS,DIM层;由ODS层数据加工而成。

  • DWD(Data Warehouse Detail 细节数据层):是业务层与数据仓库的隔离层。构建细粒度的明细层事实表。也可将明细事实表的某些重要维度属性字段做适当冗余,也即宽表化处理;

  • DWS (Data Warehouse Service 服务数据层):基于DWD的基础数据,整合汇总成分析某一个主题域的服务数据。

  • 公共维度层(DIM):基于维度建模理念思想,建立一致性维度;

  • TMP层 :临时层,存放计算过程中临时产生的数据;

ADS (Application Data Store 应用数据层):基于DW数据,整合汇总成主题域的服务数据,用于业务查询等。

数据仓库模型

事实表与维度表

  • 事实表:包含数字数据,并且数字信息可以汇总。事实表的粒度决定了数仓中数据的详细程度。

  • 常见事实表:订单事实表

  • 事实表特点:表多;数据量大

  • 事实表根据数据粒度分为:事务事实表、周期快照事实表、累计快照事实表。

  • 维度表:用来分析数据的角度。(个人理解是如何进行分组的维度信息)

  • 常见维度表:时间维度表、地域维度表、商品维度表

  • 小结:

  • 事实表关注内容:eg:销售额、销售量

  • 维度表是观察事务的角度。

事实表分类

  • 事务事实表:事务事实表记录的事务层面的事实,保存的是最原子的数据,也称“原子事实表;eg:订单表

  • 周期性快照事实表:以具有规律性的、可预见的时间间隔来记录事实,时间间隔如每天、每月、每年等等。eg:日销售表,

  • 累积快照事实表:累积快照事实表记录的不确定的周期的数据。eg:订货日期,实际发货日期

星型模型

星型模型

  • 是一种多维的数据关系,由一个事实表和一组维表组成,

  • 事实表在中心,周围围绕的连接着维表;

  • 事实表中包含了大量数据,没有数据冗余;

  • 维表是逆规范化的,包含一定的数据冗余;

雪花模型

雪花模型

  • 是星型模型的变异,维表是规范化的,

  • 特点:雪花模型结构去除了数据冗余。

事实星座

事实星座

  • 共享维表的模式,也可以看做是星型模式的汇集,因而称为星系模型或事实星座模式。

  • 特点:公用维表

数仓模型小结:

  • 星型模型存在数据冗余,所以在查询统计时只需要做少量的表连接,查询效率高;

  • 星型模型不考虑维表正规化的因素,设计、实现容易;

  • 在数据冗余可接受的情况下,实际上使用星型模型比较多;

元数据:关于数据的数据

元数据相当于所有数据的地图,元数据方便查看数据仓库中的以下几个方面:

  • 有哪些数据

  • 数据分布情况

  • 数据类型

  • 数据之间的相关性

  • 数据的访问频次

元数据贯穿大数据平台数据流动的全程,主要包括数据源元数据、数据加工处理过程元数据、数据主题库专题课元数据、服务层元数据、应用层元数据等。

业内通常把元数据分为以下类型:

  • 技术元数据:库表结构、数据模型、ETL程序、SQL程序等

  • 业务元数据:业务指标、业务代码、业务术语等

  • 管理元数据:数据所有者、数据质量、数据安全等

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数仓分层理论 的相关文章

  • 拓数派加入 OpenCloudOS 操作系统开源社区,作为成员单位参与社区共建

    近日 拓数派签署 CLA Contributor License Agreement 贡献者许可协议 正式加入 OpenCloudOS 操作系统开源社区 拓数派 英文名称 OpenPie 是国内基础数据计算领域的高科技创新企业 作为国内云上
  • 【计算机开题报告】二手车交易平台

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 选题目的 意义 如今时代网络技术正在快速发展 电子商务技术也以极为强势的姿态闯入人们的视野之中 随着人们生活质量的提升 为了对身边二手物品进行回收利用 二
  • sql临时表、创建虚拟表、select临时表、多行数据、自定义数据、插入数据

    SELECT FROM VALUES John 25 Jane 30 Mike 35 AS table name name age 方法2 select 1 2 union all select 3 4
  • Hive操作命令上手手册

    内容来自于 大数据Hive离线计算开发实战 Hive原理 Hive是一个基于Hadoop的数据仓库和分析系统 用于管理和查询大型数据集 以下是Hive的原理 数据仓库 Hive将结构化的数据文件映射成一张表 并提供类SQL查询功能 用户可以
  • Kali Linux 安全渗透核心总结,444页核心知识点

    就像IT人离不开Linux系统一样 网安人也离不开Kali Linux 作为攻击性防御和渗透测试的代名词 越来越多的人开始学习Kali 如果你也对kali感兴趣 又想深入了解这方面内容 不妨收藏一下这份Kali Linux安全渗透教程 共4
  • 神州信息一表通监管合规系统

    什么是 一表通 国家金融监督管理总局为进一步建立健全数据统计监管体系 规范数据报送指标体系 明确检测数据规则 而推行建立的一套新体系监管报送方式 提升校验准确性和信息安全性 近期 国家金融监督管理总局更是进一步加大推动 一表通 的实行试点范
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 【计算机毕业设计】个人日常事务管理系统

    进入21世纪网络和计算机得到了飞速发展 并和生活进行了紧密的结合 目前 网络的运行速度以达到了千兆 覆盖范围更是深入到生活中的角角落落 这就促使 管理系统的发展 管理系统可以实现远程处理事务 远程工作信息和随时追踪工作的状态 网上管理系统给
  • 【计算机毕业设计】学生就业管理系统

    如今社会上各行各业 都喜欢用自己行业的专属软件工作 互联网发展到这个时候 人们已经发现离不开了互联网 新技术的产生 往往能解决一些老技术的弊端问题 因为传统学生就业信息管理难度大 容错率低 管理人员处理数据费工费时 所以专门为解决这个难题开
  • 基于java的学生宿舍管理系统设计与实现

    基于java的学生宿舍管理系统设计与实现 I 引言 A 研究背景和动机 基于Java的学生宿舍管理系统设计与实现的研究背景和动机 在数字化时代的推动下 学生宿舍管理系统已经成为了管理学生宿舍的重要工具 学生宿舍管理系统能够帮助管理者更好地管
  • 电商数据api接口商品评论接口接入代码演示案例

    电商数据API接口商品评论 接口接入入口 提高用户体验 通过获取用户对商品的评论 商家可以了解用户对商品的满意度和需求 从而优化商品和服务 提高用户体验 提升销售业绩 用户在购买商品前通常会查看其他用户的评论 以了解商品的实际效果和质量 商
  • 【计算机毕业设计】电商个性化推荐系统

    伴随着我国社会的发展 人民生活质量日益提高 于是对电商个性化推荐进行规范而严格是十分有必要的 所以许许多多的信息管理系统应运而生 此时单靠人力应对这些事务就显得有些力不从心了 所以本论文将设计一套电商个性化推荐系统 帮助商家进行商品信息 在
  • 【计算机毕业设计】电影播放平台

    电影播放平台采用B S架构 数据库是MySQL 网站的搭建与开发采用了先进的java进行编写 使用了springboot框架 该系统从两个对象 由管理员和用户来对系统进行设计构建 主要功能包括 个人信息修改 对用户 电影分类 电影信息等功能
  • 【计算机毕业设计】白优校园社团网站的设计与实现

    近些年 随着中国经济发展 人民的生活质量逐渐提高 对网络的依赖性越来越高 通过网络处理的事务越来越多 随着白优校园社团网站的常态化 如果依然采用传统的管理方式 将会为工作人员带来庞大的工作量 这将是一个巨大考验 需要投入大量人力开展对社团
  • 【ES6】解构语句中的冒号(:)

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • MongoDB - 库、集合、文档(操作 + 演示 + 注意事项)

    目录 一 MongoDB 1 1 简介 a MongoDB 是什么 为什么要使用 MongoDB b 应用场景 c MongoDB 这么强大 是不是可以直接代替 MySQL d MongoDB 中的一些概念 e Docker 下载 1 2
  • 毕业设计:基于python人脸识别系统 LBPH算法 sqlite数据库 (源码)✅

    博主介绍 全网粉丝10W 前互联网大厂软件研发 集结硕博英豪成立工作室 专注于计算机相关专业 毕业设计 项目实战6年之久 选择我们就是选择放心 选择安心毕业 感兴趣的可以先收藏起来 点赞 关注不迷路 毕业设计 2023 2024年计算机毕业
  • 温室气体排放更敏感的模型(即更高的平衡气候敏感性(ECS))在数年到数十年时间尺度上也具有更高的温度变化(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码 数据
  • Python 使用 NoSQL 数据库的优选方案

    NoSQL 数据库因其高性能 可扩展性和灵活性而风靡一时 然而 对于 Python 程序员而言 选择合适的 NoSQL 数据库可能会令人困惑 因为有多种选择可供选择 那么 哪种 NoSQL 数据库最适合 Python 呢 2 解决方案 根据

随机推荐

  • jenkins始终无法正确使用git的解决方案

    在安装jenkins后 选定git的版本 git版本需要再1 7以上才行 在jenkins中设置git的执行路径 一定要检查是否是正确的 1 error Peer certificate cannot be authenticated wi
  • MySQL分表后,如何做分页查询?

    点击关注公众号 Java干货及时送达 来源 blog csdn net joy tom article details 109857573 随着项目运行的时间越来越长 有些数据的存储也会越来越大 比如一些点击量 浏览量量 单表的数据可以到达
  • 辐射定标、辐射校正、大气校正、正射校正等相关概念

    作为初学者 容易将这几个概念搞混 为了较好地理解这几个概念 先介绍一下相关的术语 terminology DN值 Digital Number 遥感影像像元亮度值 记录地物的灰度值 无单位 是一个整数值 值大小与传感器的辐射分辨率 地物发射
  • Python学习笔记综合

    一 安装和学习建议 1 使用的2 7 2 环境变量 python的根目录 3 cmd就可以运行 执行使用 python xxx py 4 编写代码可以直接python进入代码编辑 5 exit 退出编辑环境 安装与学习建议 pycharm专
  • 图像生成王者不是GAN?扩散模型最近有点火:靠加入类别条件,效果直达SOTA

    博雯 发自 凹非寺量子位 报道 公众号 QbitAI OpenAI刚刚推出的年末新作GLIDE 又让扩散模型小火了一把 这个基于扩散模型的文本图像生成大模型参数规模更小 但生成的图像质量却更高 于是 依旧是OpenAI出品 论文标题就直接号
  • 【RPA经验分享】远程桌面最小化或关闭状态运行 RPA

    了解RPA www i search com cn 学习RPA https support i search com cn 一 问题描述 当我们使用 window 自带的远程工具连接远程服务器并运行自动化流程 最小化远程窗口或关闭窗口后自动
  • 任意输入一长度不超过30的字符串,使用指针编写函数,实现如下功能:将一个字符串str1中的所有小写字母复制成为一个新的字符串str2。

    任意输入一长度不超过30的字符串 使用指针编写函数 实现如下功能 将一个字符串str1中的所有小写字母复制成为一个新的字符串str2 例如 若str1为 progRam Cczuoye 19 则str2应为 progamczuoye 要求
  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 接口测
  • 雷辉:让视频会议conferencing like TV

    伴随视频会议技术不断成熟 其功能已不局限于早期仅仅满足异地会议的需求 打破硬件的桎梏 提供白板 多媒体播放 文档协同等更多功能 如何为视频会议赋予更强大功能 实现更好体验 满足更多办公需求成为一个新的课题 LiveVideoStack邀请到
  • 测试人员必备:常用自动化测试工具

    Appium 官网 http appium io AppUI自动化测试 Appium 是一个移动端自动化测试开源工具 支持iOS 和Android 平台 支持Python Java 等语言 即同一套Java 或Python 脚本可以同时运行
  • 并发编程系列之CountDownLatch对战Cyclicbarrier

    前言 前面我们介绍了并发容器和队列 今天我们来介绍几个非常有用的并发工具类 今天主要讲CountDownLatch和Cyclicbarrier这两个工具类 通过讲解并对比两个类的区别 OK 让我们开始今天的并发之旅吧 什么是CountDow
  • Python爬虫学习-第四篇 Scrapy框架抓取唯品会数据

    上篇博文讲述了scrapy的框架和组件 对于scrapy有了基本的了解 那么我们进入今天的正题 使用Scrapy框架爬取数据 1 创建Scrapy项目 创建Scrapy工程文件的命令 scrapy startproject scrapyte
  • java实现飞机大战(简单版)

    import javafx animation AnimationTimer import javafx application Application import javafx scene Group import javafx sce
  • java压缩字符串并生成二维码

    针对特殊需求需要使用二维码传输数据 为了降低二维码的复杂度和提高数据传输量 需要先对数据进行压缩 然后生成二维码 压缩后的数据是byte 如果再转回字符串会严重影响压缩效果 因此考虑直接使用byte 生成和解析二维码 为了实现使用byte
  • 解决 “/lib64/libc.so.6: version `GLIBC_2.18‘ not found (required by /lib64/libstdc++.so.6)“

    https blog csdn net wiborgite article details 87707938
  • 基于RedHat 8.2源码编译升级Kernel 5.8.1

    1 基于RedHat 8 2源码编译升级Kernel 5 8 1 1 1 背景 只是单纯为了验证工作中遇到的一个bug 才诞生了此文 1 2 先从如下网址下载内核源码包 我这里下载的是 linux 5 8 1 tar gz 大家可根据自己需
  • 无监督深度估计、运动估计的深度学习方法(二)——SSIM损失函数

    在自监督深度估计中 一般输入2张图像 若为视频 则输入邻近的两帧图像 frame1和frame2 模型先估计相机拍摄这2张图像是的姿态变化pose 然后根据pose将frame1变换到frame2的视角下 得到合成图像synthetic f
  • 数据类型:C++中的基本数据类型

    数据类型 C 中的基本数据类型 在C 中 数据类型是用于存储不同种类数据的变量类型 C 提供了多种基本数据类型 包括字符型和数值类型 本篇博客将详细介绍C 中的基本数据类型 并提供相应的示例代码 目录 引言 字符型数据类型 2 1 char
  • Mysql数据备份-定时自动备份dump备份命令

    登录数据库服务器并打开命令行工具 如Windows系统中的cmd exe 或图形化管理工具 如phpMyAdmin Navicat等 根据数据库类型 执行相应的备份命令 例如 MySQL数据库可以使用以下命令导出备份 mysqldump u
  • 数仓分层理论

    数据仓库 在实际工作中 数仓分层 元数据管理 数据质量管理一直是一个持续优化的过程 我们公司业务也是在持续的做数仓的优化工作 在数据治理这方面还是欠缺很多的经验的 下面先简单整理了一下第一个理论部分的相关笔记 数据仓库理论 数据仓库四大特征