当前位置: 首页 > news >正文

数据仓库-维度设计

维度

在维度建模中,将度量称为“事实”,将环境描述为“维度”,维度是分析事实所需要的多样环境。

例如,在分析交易过程时,可以通过买家、卖家、商品和时间等维度描述交易发生的环境。

维度的基本设计方法

第一步:选择维度或新建维度。

作为维度建模的核心,在企业级数据仓库中必须保证维度的唯一性。

第二步:确定主维表

主维表一般是ODS表,直接与业务系统同步。

第三步:确定相关维表

根据对业务的梳理,确定哪些表和主维表存在关联关系,并选择其中的某些应用于生成维度属性。

第四步:确定维度属性

本步骤主要包括两个阶段,其中一个阶段是从主维表中选择维度属性或生成新的维度属性;第二个阶段是从相关维表中选择维度属性或生成新的维度属性。

缓慢变化维

数据仓库的重要特点之一是反映历史变化,所以如何处理维度的变化是维度设计的重要工作之一。缓慢变化维的提出是因为在现实世界中,维度的属性并不是静态的。它会随着时间的流逝发生缓慢的变化。与数据增长较为快速的事实表相比,维度变化相对缓慢。在Kimball的理论中,有三种处理缓慢变化维的方式。

方式一

重写维度值。采用此方式,不保留历史数据,始终取最新数据。

方式二

插入新的维度行。采用此方式,保留历史数据,维度值变化前的事实和过去的维度值关联,维度值变化后的事实和当前的维度值关联。

方式三

添加维度列,通过新列保存变化后的维度值。采用第二种处理方式不能将变化前后记录的事实归一为变化前的维度或归一为变化后的维度。

历史拉链存储就是利用缓慢变化维的第二种处理方式。这种处理方式是通过新增两个时间戳字段(start_dt和end_dt),将所有以天为粒度的变更数据都记录下来。通常分区字段也是时间戳字段。


http://www.mrgr.cn/news/53721.html

相关文章:

  • Qt窗体ui如何设置中英文翻译?
  • Python语法探索:解锁编程艺术的大门
  • 今日头条躺赚流量:自动化新闻爬取和改写脚本
  • Linux运维篇-误操作已经做了pv的磁盘导致pv异常
  • Unity DOTS中的Archetype与Chunk
  • 第十四届单片机嵌入式蓝桥杯
  • 鸿蒙网络编程系列31-使用RCP调用OpenAI接口实现智能助手
  • 使用Docker启动的Redis容器使用的配置文件路径等问题以及Python使用clickhouse_driver操作clickhouse数据库
  • 全网爆火的排队免单模式究竟是如何运作?
  • LabVIEW提高开发效率技巧----用户权限控制
  • Linux权限说明
  • 多种方式实现安全帽佩戴检测
  • rel-例行性工作
  • Redis JSON介绍
  • 【Java语言】逻辑控制
  • 使用big.js处理js精度缺失的问题
  • Json-Rpc框架(框架设计 —— 整体设计框架 | 抽象层 | 具象层 | 业务层)
  • 【LeetCode:1160. 拼写单词 + 哈希表】
  • 【Canvas与艺术】八瓣点心包裹之三
  • Worker线程的使用
  • 【贪心算法】(第三篇)
  • ECCV‘24 | WTConv:小参数大感受野,基于小波变换的新型卷积
  • 一款能让产品兼容所有快充协议的快充取电芯片
  • IRMV Lab新作:Mamba Diffusion模型实现高精度2D手部轨迹预测
  • 【最新华为OD机试E卷-支持在线评测】找单词(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • cefsharp 84.4.10(Chromium 84.0.4147.105)支持H264视频播放-PDF预览 老版本回顾系列体验