在DW的背景下,Grain是什么?

Any*_*are 5 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."
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*ich 7

粒度(或事实的粒度)是指您进行测量的“级别”。事实表描述了对业务流程进行的测量,因此描述粒度的最佳方法是描述您从每一行获得的内容。超市结账的经典示例是“每次哔哔声/扫描一行”。这比说“每天、产品和商店排一排”(即命名维度)要好,因为它以现实为基础。

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


Dav*_*dge 5

一些例子:

  • "销售表有几天,商店,产品"
  • "销售表有一天的DAY,STORE,PRODUCT,CUSTOMER"
  • "销售表有一小时,商店,客户"
  • "销售汇总表有一个DAY,STORE,PRODUCT_CLASS"

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