识别数据模型粒度

Posted

技术标签:

【中文标题】识别数据模型粒度【英文标题】:Identify the data model grain 【发布时间】:2016-07-13 20:04:49 【问题描述】:

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

谢谢。

【问题讨论】:

硬盘很便宜。复制在数据仓库中很好。总是选择最好的谷物 @NeilMcGuigan 但我们对每日数据感兴趣吗?我不这么认为 根据我的经验,您永远不会事先想到所有问题。始终选择尽可能低的谷物。 【参考方案1】:

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

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

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

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

【讨论】:

感谢您的详细回答,这让我更清楚【参考方案2】:

维度建模的一个原则是始终尽可能以最精细的粒度建模。我绝不会考虑在不到一天的时间内为交易建模,我什至会尝试时间(尽管这可能是一个单独的维度)。

【讨论】:

我想多了,我明白你的意思了。谢谢!

以上是关于识别数据模型粒度的主要内容,如果未能解决你的问题,请参考以下文章

阿里笔记之数据模型

阿里笔记之数据模型

数据仓库中重要的数据模型 大神都在用

数据仓库建模-维度建模

如何识别核心数据托管对象模型——哈希?

CoreML 图像模型只识别给定的数据集,如何包含外部数据?