一般维度分类

一、退化维度

1、概念

退化维度的维度表可以被剔除,从而简化维度数据仓库的模式。
当一个维度没有数据仓库需要的任何数据的时候就可以退化该维度。需要把退化维度相关数据迁移到事实表中,然后删除退化的维度。
典型的退化维度有操作型事务控制号码,例如:订单号码,发票号码,提货单号码等

2、针对订单号的退化维度

订单事实表中的每个包含明细项的行都包括作为退化维度的订单号。与操作型表头/列表或父/子数据库不同,维度模型中的订单号通常与订单表头没有关联。我们可以将订单表头中的信息分到不同的维度中,例如订单日期和客户,但是订单号没有任何维度表与它连接,所以它是一种退化维度。

然而,这种退化维度存在于事实表中也有一定的作用,比如可以用来过滤事实表和连接数据仓库与后端操作型系统。

注意:退化维度通常被保留作为操作型事务的标识符,不能将它们作为一种坚持要在事实表中使用神秘模糊代码,而不与维度表连接以获得描述性解码的接口。

二、杂项维度

1、概念

事务性商业过程中通常产生一系列混杂的,低粒度的标识和指示器。与其为每个标识或属性定义不同的维度,不如建立单独的将不同维度合并在一起的杂项维度。这些维度,通常在一个模式中标记为事务型概要维度,不需要所有属性可能值的笛卡尔积,但应该只包含实际发生在原数据中的合并值。

2、处理方式

  • 忽略这些标示和指标。 要是这些标志和指标完全没有人访问和使用,或者说,这些指标和标志难以理解且不一致,可以在建模的时候删除它们。
  • 保持事实表行中的标志和指标不变。
  • 将每个标志和指标放入其自己的维度中。 如果外键的数量是处于合理的范围(不超过20个),则在事实表中增加不同的外键是可以接受的。但是,若外键列表已经很长,则应该避免将更多的外键加入到事实表中。
  • 将标识和指标存储到订单表头维度中。 在订单事实表中,与其把订单号当做退化维度,不如视其为低粒度指标和标志作为属性的普通维度。

注意:杂项维度是对低粒度标志和指标的分组,通过建立杂项维度,将标志和指标从事实表中移出,并将它们放入到有用的多为框架中

处理这些标志和指标的适当替换方法是仔细研究它们并将它们包装为一个或多个杂项维度。杂项维度可提供地方用于基于这些标识的约束和报表,事实表与杂项维度之间还应存在一个单一的,小型的代理键。
杂项维度的建立需要考虑所有标志同时发生时最大的数据量。如果有5个标志,每个标志仅包含3个值,那么杂项维度最多只有243行。但是如果每个标志有100个值,那么该维度最多有1亿行。这时候,就需要将这些维度拆开建立多个维度了。
下图是订单标识杂项维度的示例行:

在这里插入图片描述

### 多维度分类方法概述 多维度分类是一种用于数据分析的技术,旨在通过多个视角来解析复杂的数据集。这种方法能够帮助识别隐藏在数据中的模式和趋势,从而提供更加全面的理解。 #### 数据的角度多样性 为了实现有效的多维分析,可以从多种角度审视数据,这些角度包括但不限于时间、地理位置、人口统计学特征(如年龄、性别)、以及业务特性(如产品类别)。这种多样化的视角有助于揭示不同因素之间的相互作用[^1]。 #### 层级细分策略 对于每一个选定的角度而言,还可以继续向下钻取至更为具体的子类目。例如,在处理时间序列数据时,可由年度汇总逐层细化到季度、月份乃至每日甚至每小时的具体表现;同样地,在地理空间分布方面,则能依据国家、省份直至城市级别依次展开探讨。 #### 深度挖掘层次结构 采用分层方式对目标对象实施剖析也是至关重要的一步。这意味着要先从宏观层面入手——即整个市场范围内的总体情况,再逐渐过渡到微观领域——具体商品的表现状况。这一过程不仅限于简单的数量对比,更重要的是探究背后的原因及其影响机制。 #### 跨维度综合评估 最后但并非最不重要的一点是,应当尝试建立各独立变量间的联系并加以量化描述。比如研究某一特定区域内各个年龄段消费者群体对于某款电子产品的需求差异性,并据此制定精准营销方案。此类操作往往涉及到高级算法的应用,像聚类分析或者决策树模型等机器学习工具都可以用来辅助完成这项工作。 ```python import pandas as pd from sklearn.cluster import KMeans # 假设有一个包含用户行为数据的DataFrame df df = pd.DataFrame({ 'age': [20, 30, 40], 'region': ['North', 'South', 'East'], 'purchase_amount': [100, 200, 300] }) # 对地区编码以便后续计算 df['encoded_region'] = pd.factorize(df.region)[0] # 使用K-means进行简单聚类作为示例 kmeans = KMeans(n_clusters=2).fit(df[['age', 'encoded_region']]) labels = kmeans.labels_ print(labels) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值