【问题标题】:DataModel design for customer metrics客户指标的数据模型设计
【发布时间】:2017-04-21 04:29:45
【问题描述】:

如果我们想为客户设计一个包含所有指标的表格,该表格的设计应该是什么?

更多细节: 假设有 1000 万客户。一位客户将有一行,指标可分为两种类型:1. 不变的:如出生日期、性别等。 2. 变化的:如客户上次购买的日期等。

问题:对此类数据建模的最佳方法是什么?

如果有任何信息不清楚,请告诉我。

【问题讨论】:

  • 您是否关心更改字段中的旧值?示例:您的报告是否只显示当前的Last Purchase Date?我会变得迂腐(我知道这很烦人,但澄清术语可能有助于稍后的讨论)。 DOBAge 等是属性。这些字段通常用于对数据进行分组或过滤。在这种情况下,他们描述了您的客户。指标(又名度量)是您通常求和/平均的字段。 Sales ValueNumber of Items Sold 等就是很好的例子。请参阅此wiki page 了解更多信息。
  • @destination-data - 我们需要的一些属性 history 。例如 - last purchase date 我们需要保存历史记录,但某些属性我们不需要保存历史记录,例如地址等。
  • 我可以推荐两张桌子吗?包含购买的内容,包含日期和客户 ID。另一个描述客户?每次进行新购买时,客户表都不需要新条目。 purchase 表将包含历史记录(尽管您可以在 customer 表中包含当前的 last purchase date)。
  • @destination-data - 所以你说我们应该有一张带有 customer_id 和固定属性的表(或者我们不需要保存历史记录的表 - 类型 1)。还有另一个维度(迷你维度)——我们每天每个 customer_id 有一行,所有类型为 2 的指标?推理是:您会最小化迷你维度中的空间,因为类型 1 和常量列在另一个表中?这是正确的理解吗?

标签: e-commerce analytics data-modeling data-warehouse customer


【解决方案1】:

免责声明:与大多数此类问题一样,“这取决于”您需要用它做什么、多维数据集是否最终会呈现数据、您的用户是谁、需求是什么等。

如果你有这么多记录,Kimball 会建议一张大桌子上的 Type 2 不适合你,所以我可以向你指出 Kimball 文献的方向,他们称之为 Mini Dimensions(负责 Type 4和 5 型 SCD),也在这里描述:http://www.kimballgroup.com/2010/09/design-tip-127-creating-and-managing-mini-dimensions/

我喜欢这些,尤其是当您将“持久”键与主维度键一起保留在事实中时,以及当您将当前迷你维度键保留在主维度中时。如果您无法在垃圾维度中对迷你维度的变化进行建模,那么将变化信息保存在单独的表格中可能仍然有价值。

【讨论】:

  • 这个任务的目的是建立一个报告架构
  • 我也这么认为——但是报告架构中特定设计的选择应根据报告架构应满足的特定特征而有所不同。
猜你喜欢
  • 2017-10-06
  • 2011-01-18
  • 1970-01-01
  • 2010-12-19
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
相关资源
最近更新 更多