美文网首页数据仓库
第八章 维度设计之特殊维度

第八章 维度设计之特殊维度

作者: 被爱的天青色 | 来源:发表于2019-02-19 22:29 被阅读57次


递归层次

1)维度的递归层级即在维度分层的一种表现形式,如下:

① 类目维度,细分为叶子类目、三级类目、二级类目、一级类目

② 地址类目,细分为区县、城市、省份、国家

2)对递归层次的探查过程分为上钻和下钻。假设一个场景,统计类目id为001的所有商品最近一天的销售额,步骤如下:

① 获取父类目为001的所有类目,得到一个类目集合

② 便利集合每一个元素,如果类目为叶子类目则终止;如果非叶子类目则此id作为父类目重复第一步,知道找出所有的叶子类目

③ 将所有叶子类目与事实表关联统计

以上场景是一个下钻的过程,钻取过程常常伴随递归sql。

3)为了降低递归sql的使用成本,对递归层次进行相应处理:

① 层次扁平化:

当按照三级类目进行统计时,由于001,002的三级类目为null,所以会遗漏这部分数据,我们使用的方法时回填,将上级类目向下虚拟

扁平化的使用前提是钻取前知道类目级别类目递归级别是固定

② 层次桥接表:不需要预先知道类目级别、不去要数据回填、不需要固定类目递归级别,但是使用复杂,成本高,实践中并不推荐

对类目003上钻场景:

+ 类目表限制003

+ 通过类目id与桥接表的子类目id关联

+ 事实表中类目id与桥接表父类目id关联

对类目001下钻场景:

+ 类目标限制001

+ 通过类目id与桥接表的父类目id关联

+ 事实表中类目id与桥接表子类目id关联


多值维度

        事实表一条记录根据业务场景有时会关联多条维度表数据,如一个订单包含多个子订单,会关联到多个商品信息;购房信息中的夫妻联合买入,会关联到多个买房人。常用处理办法如下:

1)降低事实表的粒度:如订单粒度降到子订单,就能实现一条事实表数据对应一个商品维表数据,但有时粒度并不能降低

2)采用多字段:对于关联维度数据不多的情况可以采用多个字段的方式,考虑到扩展性可以采用预留字段的方式

3)采用桥接表:表现灵活但是逻辑复杂,加工成本高


杂项维度

在事实表中可能存在多个类似的字段,如交易订单事实表的交易类型、交易状态、物流状态、交易流言等字段。保存在事实表中会造成事实表占用空间过大,保存在单独维表中会造成维度过多,所以建立一个杂项维度,统一存放这些字段

相关文章

  • 第八章 维度设计之特殊维度

    递归层次 1)维度的递归层级即在维度分层的一种表现形式,如下: ① 类目维度,细分为叶子类目、三级类目、二级类目、...

  • 第八章 维度设计之维度设计基础

    基本概念: 1)维度:描述业务的角度、环境 2)属性:描述维度的列,一般用于查询约束、分类汇总 3)事实:即度量 ...

  • 第八章 维度设计之维度变化

    维度变化的描述 与事实表变化相比,维度表变化相对缓慢,如何描述维度表的变化,有以下三种方式: 1)重写维度值:这种...

  • Hive维度模型设计

    维度模型设计: 1.选择业务过程 2.声明粒度 3.确认维度 4.确认事实 维度表概述: 维度表是事实表不可或缺的...

  • 第八章 维度设计职维度整合与拆分

    1)集成是数据仓库的重要特性,需要把面型应用的数据转换为面向主题的数据仓库数据 2)应用之间数据差异集中表现在: ...

  • 离线数仓二

    数据仓库维度模型设计 维度建模基本概念 维度模型是数据仓库领域大师Ralph Kimall所倡导,他的《数据仓库工...

  • 数据仓库系列4-维度表

    一. 维度表技术基础 1.1 维度表结构   每个维度表都包含单一的主键列 。维度表的主键可以作为与之关联的任何事...

  • 交互总结篇(一):框架布局篇

    上篇文章里面简单介绍了一下关于交互设计分析的三维度,即框架、流程和状态;这里就不做特殊介绍了,详细内容请见《三维度...

  • Redis

    Redis 知识全景图 两大维度 系统维度从系统维度上说,你需要了解 Redis 的各项关键技术的设计原理,这些能...

  • 交互设计五维度

    Gillian Crampton Smith 被视为交互设计的先驱之一。她提出了交互设计语言的四个维度。这些维度组...

网友评论

    本文标题:第八章 维度设计之特殊维度

    本文链接:https://www.haomeiwen.com/subject/tfxfyqtx.html