数据仓库灵魂30问之数仓基础理念理解

2023-11-19

主题

主题是一个抽象概念,是在较高层次上将数据综合、归类并进行分析利用的抽象。每一个主题都对应一个宏观的分析领域,在实际上,每一个主题对应这个分析领域的所有的分析对象。

比如销售主题对应所有和销售这个领域有关的数据。

主题域

主题域通常是联系较为紧密的数据主题的集合。可以根据业务的关注点,将这些数据主题划分到不同的主题域。

比如销售主题的主题域就是这个领域有关的数据的集合。

血缘关系

血缘关系是指某个字段从哪个系统的哪个表产生,经过哪些流程最后被弃用的全过程。
比如我们要从A表,B表,C表生成D表,在整个过程中会生成数个临时表,那么字段经过哪些临时表最终生成D表的链路就是血缘。

拉链表

所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。

代理键

当表中的键都不适合作为主键时,产生一个流水号作为代理键。

维度退化

当一个维度表没有事实表需要的数据的话,就可以退化为一个只有主键的维度表。
比如人员维度表中对于人员的描述在事实表中没有意义,只需要人员id这一个字段,那么就将人员id冗余到事实表中,只使用人员id。

缓慢变化维SCD

维度表在使用中不是一成不变的,也是会发生缓慢的变化。

类型0:原样保留
维度属性值不会发生变化,因此事实表以原始值分组。
类型0适合做标记为“原型”的情况,比如信用卡积分等等。


类型1:重写
维度行中原有的属性值被新值覆盖。此技术破坏了历史情况,尽管不需要建立额外的维度行,但是他会影响聚集事实表或OLAP数据引擎的重复计算。


类型2:增加新行
在维度表中增加新行,新行采用修改的属性值。
使用该方法的前提是维度主键更具有一般性。
增加行时,必须增加三个额外的列:①行有效的日期/时间戳列;②行截止日期/时间戳列;③当前行标识
这样是避免多行描述统一对象(假设A入职某公司后离职,那么A肯定会在人员维度表中留存,多年后A再次入职该公司,那么A在维度表中就有两条记录)。


类型3:增加新属性(列)
一般进行类型0或类型1操作,这种操作不太常用。


类似4:增加微型维度
假设有一个几百万行的销售维度表,那么技术人员肯定不愿意再往里面添加记录,而且他本身查询也到达了瓶颈。
这样为了优化查询,可以在这个维度表上产生一个销售微型维度表,将活性高的数据提出组成一个小表来供查询。
将维度中的一组属快速变化并划分为微型维度。
微型维度被称为快速变化魔鬼维度(魔鬼?)。


类型5:增加微型维度及类型1支架
在类似4上加解读,例如有销售额字段,假设值是123.45,那我干脆弄成1-50,51-100,101-150,…这样的对数据进行整合效果岂不是更好。


类型6:增加类型1到类型2维度
类型6建立在类型2基础上,同时嵌入到类型1中。本质上就是按照类型2读取有效行,按照类型1进行分组或过滤。
现在HBASE或HIVE默认都是类型6。


类型7:双类型1和类型2维度
类型7是一种混合技术,适合沉淀了大量数据,对新数据频繁使用,对旧数据也有使用需求的场景。
第一个类型1维度仅展示活性最高的属性值,第二个类型1和第一个类型2组成类型6对历史概要进行展示。
类型7可以理解为基于类型6及类型1支架。

最简单的处理方式是拉链表。

事实表类型

事务事实表
事务事实表的一行对应空间后时间上某点的度量事件。事务事实表是可维度化且可被表达的事实表,应该确保数据有最小粒度来保证最大健壮性。


周期快照事实表
是事务事实表汇总的某一标准周期,如某天,某周,某月。粒度是周期性的,而不是个体的事务。


累积快照事实表
累积快照事实表是在事务开始时就创建,当事务到达固定的流程时填写对应的度量,在事务结束后这一行才算输入完成。
例如去某宝买东西,浏览就算是事务开始,然后好评才算事务结束,中间所有的度量都是某宝固定好的或者说预测好的。


无事实的事实表
用来记录一个事件的事实表,没有相关的度量,例如记录一天内学生上了什么课,应该有天,学生,老师,地点,课程等本身就很细的外键,没有相关的度量。

原子/派生指标

原子指标是指不加任何修饰词的指标,简单来说就是度量。比如销售量。
派生指标=原子指标+时间周期+修饰词。比如7天销售量,膨化食品销售量。

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

数据仓库灵魂30问之数仓基础理念理解 的相关文章

  • 《阿里大数据之路》读书笔记:第二章 日志采集

    第二章 日志采集 一 浏览器的页面日志采集 浏览器的页面型产品 服务的日志采集可分为两大类 页面浏览 展现 日志采集 指一个页面被浏览器加载呈现时采集的日志 此类日志是最基础的互联网日志 此类日志是目前所有互联网产品的两大基本指标 页面浏览
  • 数据仓库工程师面经(未完)

    HIVE Hive row number dense rank rank三个函数的区别 Hive 窗口函数如何设置窗口大小 Hive order by sort by distribute by cluster by 区别 Hive map
  • 第二篇:数据仓库与数据集市建模

    阅读目录 前言 维度建模的基本概念 维度建模的三种模式 实例 零售公司销售主题的维度建模 更多可能的事实属性 经典星座模型 缓慢变化维度问题 数据仓库建模体系之规范化数据仓库 数据仓库建模体系之维度建模数据仓库 数据仓库建模体系之独立数据集
  • Databend 设计概述

    Databend 是一个开源的 完全面向云架构的新式数仓 它提供快速的弹性扩展能力 并结合云的弹性 简单性和低成本 使 Data Cloud 构建变得更加容易 Databend 把数据存储在像 AWS S3 Azure Blob 这些云上的
  • 数据仓库主题三-(实施篇)

    背景 如何从具体的需求或项目转换为可实施的解决方案 如何进行需求分析 架构设计 详细模型设计等 则是模型实施过程中讨论的内容 业界常用两种数据仓库建设模型思想分为两种kimball和inmon模型 具体的kimball和inmon 模型思想
  • hiveSql 重分组聚合问题

    hiveSql 重分组聚合问题 问题 分析 实现 最后 问题 将下图中A表转变为B和C 即A gt B A gt C 分析 1 首先看A gt B 可见是将name列分组 取最大组内最大id 介绍两种求解方式 1 很容易想到 开窗函数fir
  • 【Hadoop技术篇】hadoop的使用

    博主介绍 博主介绍 大家好 我是淼淼 喵 很高兴认识大家 主攻领域 大数据开发 数据仓库 ETL 数据分析 面试分析 点赞 评论 收藏 养成习惯 一键三连 欢迎关注 一起学习 一起讨论 一起进步 欢迎评论 作者水平有限 欢迎各位大佬指点 相
  • 数仓体系效率全面提升!同程数科基于 Apache Doris 的数据仓库建设

    应用实践 数仓体系效率全面提升 同程数科基于 Apache Doris 的数据仓库建设 导读 同程数科成立于 2015 年 是同程集团旗下的旅游产业金融服务平台 2020 年 同程数科基于 Apache Doris 丰富的数据接入方式 优异
  • 数据挖掘学习

    文章目录 绪论 定义 挖掘过程 数据准备 数据探索EDA 数据仓库 空间数据库 时间数据库和时序数据库 流数据 异构数据和遗产数据 数据挖掘的模式 数据准备 数据组成 什么是数据对象 什么是数据属性 数据搜集 数据质量分析 数据类型 考点
  • 数据仓库是什么?和数据库有何区别?

    在具体学习数据仓库之前先看一下数据中心的整体构架以及数据流向 DB 是现有的数据来源 可以为mysql SQLserver 文件日志等 为数据仓库提供数据来源的一般存在于现有的业务系统之中 ETL 是 Extract Transform L
  • Tez 简介

    目录 一 Tez简介 二 Tez UI界面 三 Tez 日志 一 Tez简介 1 1 Tez 是支持 DAG 作业的开源计算框架 它可以将多个有依赖的作业转换为一个作业从而大幅提升 DAG 作业的性能 从本质上讲 Tez 组成非常简单 数据
  • Hadoop 之上的数据建模 - Data Vault 2.0

    对比传统的基于 RDBMS 之上的数据仓库和商业智能项目 尝试着说说 Hadoop 之上的数据仓库 从ETL 数据存储 到分析展现 重点围绕数据建模方面做分析 因为这是本文的重点 介绍一份新的数据建模方式 Data Vault 2 0 ET
  • IIS7解析漏洞复现

    首先我们在win7上安装IIS7 控制面板 程序 打开或关闭windows功能 勾选如下信息 尽量勾选多一点防止实验失败 点击确定 稍等 在windows7虚拟机安装phpstudy2018版本 可先在物理机下载压缩包 然后上传到虚拟机 然
  • 初学MaxCompute

    MaxComputer是阿里云提供的一种全新的大数据计算服务 其具备更高效的计算及存储能力 本人的理解就是一个类似于HBase Hive的云上的数据仓库 参考官方文档系列 https yq aliyun com articles 85595
  • 企业网站建设方案书

    一 网站建设目标 1 1背景分析 现在网络的发展已呈现商业化 全民化 全球化的趋势 目前 几乎世界上所有的公司都在利用网络传递商业信息 进行商业活动 从宣传企业 发布广告 招聘雇员 传递商业文件乃至拓展市场 网上销售等 无所不能 如今网络已
  • Databend 存储架构总览

    目的 通过本篇文章带大家理解一下 Databend 的存储结构 Databend 内置的 Table 引擎为 Fuse table engine 也是接下来要花重点篇幅要讲的 另外 Databend 还支持外置的 Hive table 及
  • 3. ClickHouse数据类型和表结构

    3 1 数据类型 整数类型 整数类型有Int8 Int16 Int32 Int64 分别表示8位 16位 32位和64位有符号整数 适用场景 存储整数值 如年龄 数量等 浮点类型 浮点类型有Float32和Float64 分别表示32位和6
  • 浅谈我所见识的数据治理项目

    开篇一张图 与正文不一定有关 图片来源于朋友圈 01 写在前面 熟悉笔者的朋友可能知道 笔者之前做的并非纯数据相关工作 产品或项目 笔者属于半路出家的数据人 之前也几乎没有直接接触过数据仓库 数据中台 数据平台等产品或项目 与数据库是一直打
  • HiveSQL原理和优化详解

    Hive SQL 编译成MapReduce过程 编译 SQL 的任务是在上节中介绍的 COMPILER 编译器组件 中完成的 Hive将SQL转化为MapReduce任务 整个编译过程分为六个阶段 词法 语法解析 Antlr 定义 SQL
  • 大数据之hive(数据仓库工具)的分组和分区操作

    注 在对hive的概念 优缺点 安装部署和参数配置在之后再进行总结 本小节主要对hive中的分组和分区进行总结 一 分组 1 group by语句 group by通常和聚合函数一起使用 按照一个或者多个列进行分组 然后对每个组进行聚合操作

随机推荐

  • SpringBoot(3)整合MyBatis 和MybatisPlus

    SpringBoot 3 整合MyBatis 和MybatisPlus 1 整合MyBatis 1 1新建模块 1 2在pom xml中添加mysql驱动 1 2 1防止编译时不将静态资源编译进去 在pom xml中添加 1 3 appli
  • 【数值计算之二】数值积分之牛顿——科斯特公式:梯形、辛普森、辛普森3/8和布尔 & 高斯积分公式:勒让德、切比雪夫、拉盖尔和埃尔米特

    import numpy as np from scipy integrate import quad from sympy import init printing import matplotlib pyplot as plt 数值积分
  • Rust全局变量

    在Rust中 全局变量可以分为两种 编译期初始化的全局变量 const创建常量 static创建静态变量 Atomic创建原子类型 运行期初始化的全局变量 lazy static用于懒初始化 Box leak利用内存泄漏将一个变量的生命周期
  • non-protected broadcast场景分析及解决

    non protected broadcast场景分析及解决 在两个app之间互相送消息使用BroadcastReceiver 有时在运行过程中在logcat工具中会发现大片的飘红消息 要消除这些错误信息 需要在广播的 Sender 和 R
  • WSL和VMware不兼容,安装了WSL之后VMware启动不起来

    WSL依赖于hyper v必须开启 而VMware不依赖这个 必须关闭 CMD管理员模式启动 输入bcdedit set hypervisorlaunchtype auto开启 则可以使用WSL CMD管理员模式启动 输入bcdedit s
  • ubuntn 下安装nginx 报错 ./configure: error: C compiler cc is not found

    原因是 error C compiler cc is not found c编译器没有安装 解决办法 需要安装编译工具及库文件 网址很多文章没有详细写nginx 安装教程 跟着教程敲命令然后出错了 安装nginx需要安装编译工具及库文件参考
  • 分布式锁解决方案_Zookeeper分布式锁原理

    通过召zk实现分布式锁可靠性时最高的 公平锁和可重入锁的原理 取水秩序 1 取水之前 先取号 2 号排在前面的 就可以先取水 3 先到的排在前面 那些后到的 一个一个挨着 在井边排成一队 公平锁 这种排队取水模型 就是一种锁的模型 什么是可
  • docker遇到问题集合

    1 docker images下删除镜像提示image is being used by stopped container 1b817324f96a 依次执行下面命令 docker ps a grep Exited awk print 1
  • 爬虫实例十一 全国城市房价排行

    目标网址 https www creprice cn rank index html 这一看就是个静态页面 没有用任何反爬措施所以很好爬 直接发送请求解析数据就可以了 完整代码 import requests from lxml impor
  • 睿智的目标检测54——Tensorflow2 搭建YoloX目标检测平台

    睿智的目标检测54 Tensorflow2 搭建YoloX目标检测平台 学习前言 源码下载 YoloX改进的部分 不完全 YoloX实现思路 一 整体结构解析 二 网络结构解析 1 主干网络CSPDarknet介绍 2 构建FPN特征金字塔
  • ElementUI浅尝辄止26:Notification 通知

    悬浮出现在页面角落 显示全局的通知提醒消息 1 如何使用 适用性广泛的通知栏 Notification 组件提供通知功能 Element 注册了 notify方法 接收一个options字面量参数 在最简单的情况下 你可以设置title字段
  • 资源路径嵌套异常,检测不到:IOException parsing XML document from class path resource [applicationContext.xml]

    org springframework beans factory BeanDefinitionStoreException IOException parsing XML document from class path resource
  • ARP与ARP代理的理解

    1 ARP 首先讲到ARP ARP是地址解析协议 它的作用是在以太网环境下 通过第3层的网络层IP地址来找寻2层数据链路层的MAC地址 得到一张ARP缓存表 转发数据的时候根据ARP缓存表来进行传输 下图详细说明数据传输时ARP是如何一步步
  • TVP新书上架

    新书速递 近期 在腾讯云 TVP 联合出书计划中 腾讯云 TVP 山金孝老师推出了新书 融合 产业数字化转型的十大关键技术 融合 产业数字化转型的十大关键技术 作者 山金孝 李琦 中译出版社 内容简介 数字经济已成为高质量发展的新引擎 数字
  • [Django基础06]模型和数据库交互

    2 数据库配置 MySQL 通常情况下 如果你只是做测试使用 可以使用Django内置的数据库SQLite就完全可以满足需要了 我们在本次教程中 通过使用MySQL这个数据库来完成后续的功能操作 我们首先要做的是 在配置文件中指定数据库的配
  • Densely Connected Convolutional Networks 密集连接卷积网络

    什么是DenseNet DenseNet是由清华大学的Zhuang Liu 康奈尔大学的Gao Huang和Kilian Q Weinberger 以及Facebook研究员Laurens van der Maaten在CVPR 2017所
  • 5.13 综合案例2.0-火焰检测系统(2.2版本接口有更新)

    综合案例2 0 火焰检测系统 简介 火焰传感器 准备 硬件连接图 代码流程 功能实现 1 物联网平台开发 2 设备端开发 调试 3 物联网应用开发 4 1新建 普通项目 4 2创建 Web应用 4 3页面设计 4 4关联产品 4 5关联数据
  • 蓝桥杯C/C++百校真题赛(3期)Day3(考勤刷卡、最大和)

    Day3 Q1 考勤刷卡 Q2 最大和 Q1 考勤刷卡 问题描述 小蓝负责一个公司的考勤系统 他每天都需要根据员工刷卡的情况来确定 每个员工是否到岗 当员工刷卡时 会在后台留下一条记录 包括刷卡的时间和员工编号 只 要在一天中员工刷过一次卡
  • 【反向工程】从科研文献表格,反向还原数据

    很多时候会遇到这样一个问题 有一些文章在chart中汇报了实验结果 但是并没有标注上具体的实验数值 如果逍遥获得具体数值 就得用尺子去量 这里推荐一个网站 能够帮助你估计一张chart中 每个数据点对应的横纵坐标 在某些情况下很有用处 至少
  • 数据仓库灵魂30问之数仓基础理念理解

    主题 主题是一个抽象概念 是在较高层次上将数据综合 归类并进行分析利用的抽象 每一个主题都对应一个宏观的分析领域 在实际上 每一个主题对应这个分析领域的所有的分析对象 比如销售主题对应所有和销售这个领域有关的数据 主题域 主题域通常是联系较