根据Kimball的数据仓库工具包
"The grain must be declared before choosing dimensions or facts because every candidate dimension or fact must be consistent with the grain."
我对这个概念感到很困惑。可以有人说明Grain
在现实生活中给出类比或隐喻的含义是为了澄清这个概念。
答案 0 :(得分:5)
一些例子:
因此,时间维度必须支持HOUR和DAY,产品维度必须支持PRODUCT和PRODUCT_CLASS。
答案 1 :(得分:3)
颗粒(或事实的粒度)是指您进行测量的“水平”。事实表描述了对业务流程的度量,因此描述粒度的最佳方法是描述每行所获得的内容。超市收银台的典型示例是“每次哔声/扫描一行”。这比说“每天一行,产品和商店”(即命名维度)更好,因为它实际上是对它的理由。
grain / level元素是您可能在产品级别存储行,或者您可能将其存储在某些产品组中。这很重要,因为它将决定您是否可以使用产品级维度或组级维度。
答案 2 :(得分:2)
添加大卫的例子。如果您的日期维度最低粮食是一周而销售粮食是一天怎么办?这意味着您的DIM和FACT颗粒不一致。此外,您的销售表可以指出产品及其颜色,但如果您的产品尺寸的最小颗粒只是产品而没有颜色,该怎么办?再次,你的DIM和FACT最低粒度存在不稳定性。