维度同时作为度量是不是有意义

Posted

技术标签:

【中文标题】维度同时作为度量是不是有意义【英文标题】:Does it make sense for a dimension to also be a metric维度同时作为度量是否有意义 【发布时间】:2013-08-22 13:36:49 【问题描述】:

我目前正在研究一个仓库模式,大致使用维度建模方法。

一般的想法是有一个单一的事实表,在最低粒度级别上充满感兴趣的事件度量。除此之外,当然还有一个维度表(a),其中将保存正在记录的事件的维度。这些表由dimension_id 绑定。

我的问题是:是否有可能,或者更确切地说,它是否有意义,既是维度又是指标。

一个例子可能是一个产品在一些搜索结果中的位置。给定产品的位置可以被认为是一个度量;用户可能希望对产品运行以下查询:

上周维度 x = y 的产品展示的平均排名是多少?

同时,位置本身也可以被认为是一个维度:

显示上个月所有位置 = 2 的产品的点击率

在数据仓库中解决此类问题的正确方法是什么(我们正在研究面向列的解决方案,如果这会有所作为)。

【问题讨论】:

你的意思是“测量”吗? 【参考方案1】:

在我看来,在这两种情况下,您实际上只是在对度量进行查询

上个月位置 = 2 的产品

考虑生成此信息的方法,可以通过动态从事实表中生成正确的产品列表,然后将外部事实查询限制为这些产品来得出。

如果您有一个有能力的分析师运行自定义 SQL,这很好,但对于非技术分析师来说,在我曾经使用过的任何报告工具中构建它要困难得多。

您可以将您的位置作为一个属性“强化”为一个缓慢变化的维度。但是对于快速变化的数据,这通常不是一种选择......因为您的维度变化如此之快,这是不切实际的。

如果您可以将所需的分析期限制为一个月,则将每月评级(以及许多其他属性,包括滚动期类型属性)实施到一个缓慢变化的维度中可能是切实可行的,这意味着您至少有每年有 12 个产品维度成员,但您可以将每个可想象的实际 KPI 汇总到维度中的一列中,这通常很有帮助。

但我猜这对你来说并不新鲜。

【讨论】:

我想我的问题更多——你是否复制了一些信息(位置),通过将事实表作为指标存储在维度表中,将维度表作为属性存储,或者你调整你的报告系统允许对数字维度进行聚合查询。希望这更有意义。 在我看来,批量加载的维度仓库为您提供了复制各种信息的便利和速度。

以上是关于维度同时作为度量是不是有意义的主要内容,如果未能解决你的问题,请参考以下文章

数仓中指标-标签,维度-度量,自然键-代理键等各名词解析及关系

数仓中指标-标签,维度-度量,自然键-代理键等各名词深度解析

数仓中指标-标签,维度-度量,自然键-代理键等各名词深度解析

数据仓库维度设计、客户及联系方式

如何在 Pentaho xml 模式中使用 CalculatedMember(维度,而不是度量)?

QuickBI助你成为分析师-数据建模