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

数据仓库 桥接表_数据仓库-维度处理-读书笔记(四)

一致性维度

1,当不同的维度表的属性具有相同的列名和领域内容时候,称为维度具有一致性

2,有利于不同事实表的合并到同一报表中去

3,在一致性维度的前提下,可以被所有事实表复用

4,可以保证分析结果的一致性且减少开销

缩减维度

场景一:当构建聚集事实表需要缩减上卷维度

场景二:商业过程自然的获取粒度级别较高的数据

场景三:两个维度具有同样粒度级别的细节数据,但是其中一个仅表示行的部分子集

跨表钻取

1,当两个表包含相同的一致性属性时候,使不同的查询能够针对两个或者更多的事实表进行查询

价值链

1,区分与组织中主要业务过程的自然流程。是对商业活动过程的重新整合和组装。同一组织下的同一个业务过程,对于不同的角色价值链不同,例如:销售商的价值链包括:购买、库存、零售额等;分类账价值链包括:预算编制、承付款项、付款等。

2,尽量为每个过程至少建立一个原子事实表

企业数据仓库总线架构

通过关注业务过程将DW/BI规划过程分解为可管理的模块,通过重用跨不同过程的标准化一致性维度发布实现集成

企业数据仓库总线矩阵

是用于设计并与企业数据仓库总线架构交互的基本工具。矩阵的行代表业务过程,列表示维度,点表示维度与给定的业务过程是否存在关联关系。

总线矩阵

总线矩阵实现细节

是一个更加细粒度化的总线矩阵,其中扩展每个业务过程行以展示特定事实。

总线矩阵实现细节

机会/利益相关方矩阵

用于区分哪些业务过程分组应该与过程中心行相关

数据仓库如何处理缓慢变化维度属性

SCD全称:Slowly Changing Dimension

SCD0:原样保留

维度值属性不会发生变化,事实表以原始值分组。例如:客户的原始的信用卡积分或者持久性标识符 如身份证

SCD1:重写

原来的属性值被新值覆盖。

特点:

1,总是反应最近的状态。此技术破坏了历史情况。

2,易于实现且不需要建立额外的维度行,但是会影响聚集事实或者OLAP多维数据库重新计算

SCD2:增加新行

在维度表中增加新行,新行采用修改的属性址

特点:

1,维度表主键更具有一般性,不能是自然键或者是持久键

2,增加新行时候,分配一个新的主代理键,作为所有事实表的外键,直到产生新的维度键

SCD2缓慢变化维度处理

3,通常我们还会有其余的设计方式去处理SCD2,但是图中的方式是管理、操作最简单的方式

SCD3:增加新属性

在维度上增加新属性以保存原来的值,新属性的变化通过SCD1方式处理

增加新列,此种方式不太常用。

SCD4:增加微型维度

当维度中的一组属性快速变化并划分为微型维度时候使用

微型维度需要自己的唯一主键。其主键从相关的事实表中获取

SCD5:增加微型维度以及类型1支架

对于精确保存历史属性值,按照当前属性值,增加报表的历史事实。

SCD5建立在SCD4基础上,并嵌入SCD1应用基维度中的微型维度

SCD6:增加类型1属性到类型2维度

也保存历史和当前维度属性值。SCD6建立在SCD2的基础上,同时嵌入维度行当前类型1版本。

在此环境中,当属性发生变化时候,SCD1属性由系统自动重写与特定持久键关联的所有行

SCD7:双类型1和类型2维度

支持现在和过去的混合技术。

通过SCD1仅仅展示最新属性值。通过SCD2展示最新历史概要。维度的持久键和代理键需要同时存在事实表上。

数据仓库如何处理维度层次关系

固定深度位置的层次

是多对一关系的一种。最容易理解和查询的层次关系,提供可预测的、快速的查询性能。

需要深度确定,命名稳定

轻微参差不齐

没有固定的层次深度,但层次深度有限。一般尝试确定最大深度,然后基于业务规则放置属性

具有层次桥接表的参差不齐/可变深度层次

深度不确定的层次非常难以建模。可以通过桥接的方式建模参差不齐的层次。桥接表对每个可能的路径保留一行,确保能够遍历所有层次的形式

具有路径字符属性的可变深度层次

通过使用路径字符属性,以避免使用桥接表表示可变深度层次。对维度中的每行的路径字符属性嵌入特定的文本字符,包含从高层次到特定维度行所描述节点的完整路径描述。

缺陷:

1,不能确保其他层次快速替换

2,无法保证共享自身层次

3,当层次发生变化,可能需要重新标记整个层次

相关文章:

  • 装完nvme固态经常蓝屏_方案解决:NVMe SSD安装Win7蓝屏0x0000007B快速解决方案
  • 上的img表示什么_html元素img之间会有空隙的原因以及如何消除
  • netty代理转发_lemon: 基于Netty的微服务网关,实现Dubbo、HTTP等代理转发!
  • mysql自动备份快结束很卡_mysql备份慢以及自动重启问题——调整NUMA
  • mysql 数据库表属性默认_【学习之Mysql数据库】mysql数据库创建表的属性详解
  • perl mysql utf8_mysql – Perl字符串操作和utf8 / unicode
  • docker redis mysql_Docker安装常用组件(mysql,redis)的方法
  • mysql 检查约束 替代_MySQL检查约束
  • mysql触发器修改表分区_MySQL 触发器例子(两张表同步增加和删除)
  • mysql索引性能极具下降_性能优化之mysql索引优化
  • mysql keepalived6_MySQL+Keepalived实现主主高可用方案
  • python install package_python install package作为另一个包的子包
  • 易语言 excel_易语言初级教程-将图片转化为excel像素画
  • PHP启动mysql时出现路径_MySQL数据库改路径后没办法启动的问题
  • es6 三点运算符_ES6-- 扩展运算符与剩余操作符...
  • Android单元测试 - 几个重要问题
  • Angular6错误 Service: No provider for Renderer2
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • ES10 特性的完整指南
  • IDEA 插件开发入门教程
  • Java,console输出实时的转向GUI textbox
  • JS函数式编程 数组部分风格 ES6版
  • Js基础——数据类型之Null和Undefined
  • Linux后台研发超实用命令总结
  • node-glob通配符
  • Python实现BT种子转化为磁力链接【实战】
  • vue-cli在webpack的配置文件探究
  • vuex 学习笔记 01
  • 配置 PM2 实现代码自动发布
  • 使用putty远程连接linux
  • 一个JAVA程序员成长之路分享
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • - 转 Ext2.0 form使用实例
  • 函数计算新功能-----支持C#函数
  • !$boo在php中什么意思,php前戏
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (a /b)*c的值
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (七)c52学习之旅-中断
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (一)RocketMQ初步认识
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)用.Net的File控件上传文件的解决方案
  • ***检测工具之RKHunter AIDE
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net IE10 _doPostBack 未定义
  • .NET MVC第三章、三种传值方式
  • .NET Remoting学习笔记(三)信道
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试