首页 > 解决方案 > 数据库或数据仓库中的事实表和暗表?

问题描述

我正在为接收事务性用户数据的数据库设计架构,目标是存储数据,对其进行转换,然后在仪表板上以图形的形式将其显示给用户。

我的理解是,我们对数据进行规范化以优化数据库中的存储,并将数据仓库中数据库中的数据非规范化为可用于数据可视化/分析的格式。

在网上,我看到 Fact 和 Dim 表属于数据仓库,但由于我的数据性质,我目前将它们放在我的数据库中。我的理解错了吗?我认为数据仓库连接了数据库中的 Fact 和 Dim 表并聚合或执行其他计算以进行分析?

我是数据库设计的新手,因此我们将不胜感激任何指导!

标签: mysqldatabasedatabase-designdata-warehousedatabase-normalization

解决方案


是的,将数据存储在“数据仓库”中以供以后绘图是很好的。

是的,“规范化”(进入“暗淡”表)很好,但它可能做得过头了。例如,不要规范化 DATE 或 DATETIME;弊大于利。

典型的“事实”表需要很少的索引,可能只是一个PRIMARY KEY.

通常,需要汇总事实表中使用的数据。然后甚至可能会发生图形 - 绘制一百万个点是没有用的。您可以将其归结为一千,这样您就不会阻塞图形软件。

应建立“汇总表”,然后逐步(或持续)维护。通常,汇总表包含事实表切片的每日计数和小计。(“聚合”)然后图表的“报告”或提取对汇总表起作用。除了比 Fact 表少得多的行之外,此类表还具有使查询高效的索引。

更多讨论: http: //mysql.rjweb.org/doc.php/datawarehouse (以及 3 篇相关文章)。

为了进一步讨论,让我们看看CREATE TABLE您的事实表和您需要的图表之一的尝试。


推荐阅读