识别数据模型粒度

Identify the data model grain

我目前正在从事设计和实施银行数据仓库的项目。我想为会计数据集市定义数据模型,定义粒度并使用星型模式对其建模。有人告诉我,我们对 客户 的交易感兴趣,该客户在 分支机构 中注册了 帐户 [=19] =] ....(一些其他维度).....在某个日期。但他们要求 DAILY 笔交易!我的观点是,在数据仓库中进行日常交易毫无意义,因为它是交易数据库的精确副本!这个数据仓库将用于制作仪表板,我猜决策者对如此详细的数据不感兴趣。你怎么看 ?

谢谢。

维度建模的一个原则是始终以尽可能精细的粒度建模。我从来没有想过在少于一天的时间里对交易进行建模,我什至会尝试时间(尽管那可能是一个单独的维度)。

使用日粒度作为时间维度并考虑以下因素:

仓库不是交易数据库的副本,即使两者可能提供相同的信息。仓库针对分析进行了优化,它包含所有历史记录,它是非易失性的,并且它沿维度聚合数据。

在您的示例中,仓库可能只有一行代表一天内发生的许多交易,因此它不会复制 grain。它可能包含五年前已从交易系统中清除的信息。聚合查询中的金额将非常快。它的使用不会给您的交易系统带来负担。有一天,当您的公司与另一家公司合并时,它可能包含来自另一个交易数据库的信息。或者可以使用从一个或多个社交网络导入的数据来增强客户信息。

关键是,不要对仓库中的细粒度数据犹豫不决,这些数据似乎对事务系统来说是多余的。它很有用,也很常见。