数据仓库设计中最常见的粒度
Most common granularities in datawarehouse designs
我一直在寻找这个问题的答案:
在询问粒度时,给出的直接示例是:交易、日、周、月等。我找不到任何其他类型的示例。例如,我们是否可以考虑 'city'、'state' 等粒度?例如,我们何时考虑一家全国性公司的销售?换句话说,粒度总是某种时间类型吗?
不,粒度并不总是与时间相关。您的最低粒度通常是某种交易。 Kimball 使用的示例之一来自零售环境:与产品销售相关的最低粒度可能是在结账时扫描的商品。两个这样的交易可能同时发生,所以这不是基于时间的粒度。
任何东西 都可以 为 table 的粒度,但 Kimball 建议使用最低粒度,因为这更加灵活 - 然后您可以切片和以更多方式切分您的数据。您可能会选择一些汇总的 tables,您可以将数据汇总到周级别、州级别或几乎任何其他内容(可能出于性能原因,或者为了让某些用户更容易)——但这些都是不太可能是您的最低粒度。
以州为例 - 您可能在同一层次结构中拥有较低级别的信息,您可以按这些信息分析销售数据,例如县、市、邮政编码。您可能还拥有关于单个客户的数据、具体的订单参考、涉及的商店或销售办公室、处理订单时涉及的员工等。因此选择使用状态作为粒度事实 table,除非您有某些特定原因要从基于订单项目的交易事实 table 汇总。
您经常看到日期或时间字段,因为 table 的粒度在周期性快照事实中,但同样,这些通常是从其他粒度较低的数据源聚合而来的。
我一直在寻找这个问题的答案:
在询问粒度时,给出的直接示例是:交易、日、周、月等。我找不到任何其他类型的示例。例如,我们是否可以考虑 'city'、'state' 等粒度?例如,我们何时考虑一家全国性公司的销售?换句话说,粒度总是某种时间类型吗?
不,粒度并不总是与时间相关。您的最低粒度通常是某种交易。 Kimball 使用的示例之一来自零售环境:与产品销售相关的最低粒度可能是在结账时扫描的商品。两个这样的交易可能同时发生,所以这不是基于时间的粒度。
任何东西 都可以 为 table 的粒度,但 Kimball 建议使用最低粒度,因为这更加灵活 - 然后您可以切片和以更多方式切分您的数据。您可能会选择一些汇总的 tables,您可以将数据汇总到周级别、州级别或几乎任何其他内容(可能出于性能原因,或者为了让某些用户更容易)——但这些都是不太可能是您的最低粒度。
以州为例 - 您可能在同一层次结构中拥有较低级别的信息,您可以按这些信息分析销售数据,例如县、市、邮政编码。您可能还拥有关于单个客户的数据、具体的订单参考、涉及的商店或销售办公室、处理订单时涉及的员工等。因此选择使用状态作为粒度事实 table,除非您有某些特定原因要从基于订单项目的交易事实 table 汇总。
您经常看到日期或时间字段,因为 table 的粒度在周期性快照事实中,但同样,这些通常是从其他粒度较低的数据源聚合而来的。