在DW的背景下,谷物是什么?

时间:2016-08-27 12:15:15

标签: sql database oracle data-warehouse dimensional-modeling

根据Kimball的数据仓库工具包

"The grain must be declared before choosing dimensions
or facts because every candidate dimension or fact must be consistent with the grain."

我对这个概念感到很困惑。可以有人说明Grain在现实生活中给出类比或隐喻的含义是为了澄清这个概念。

3 个答案:

答案 0 :(得分:5)

一些例子:

  • “销售表格中有DAY,STORE,PRODUCT”
  • “销售表格中有DAY,STORE,PRODUCT,CUSTOMER”
  • “销售表有一小时,商店,客户”
  • “销售汇总表包含DAY,STORE,PRODUCT_CLASS”

因此,时间维度必须支持HOUR和DAY,产品维度必须支持PRODUCT和PRODUCT_CLASS。

答案 1 :(得分:3)

颗粒(或事实的粒度)是指您进行测量的“水平”。事实表描述了对业务流程的度量,因此描述粒度的最佳方法是描述每行所获得的内容。超市收银台的典型示例是“每次哔声/扫描一行”。这比说“每天一行,产品和商店”(即命名维度)更好,因为它实际上是对它的理由。

grain / level元素是您可能在产品级别存储行,或者您可能将其存储在某些产品组中。这很重要,因为它将决定您是否可以使用产品级维度或组级维度。

答案 2 :(得分:2)

添加大卫的例子。如果您的日期维度最低粮食是一周而销售粮食是一天怎么办?这意味着您的DIM和FACT颗粒不一致。此外,您的销售表可以指出产品及其颜色,但如果您的产品尺寸的最小颗粒只是产品而没有颜色,该怎么办?再次,你的DIM和FACT最低粒度存在不稳定性。