gpt4 book ai didi

database-design - 为星型模式中的决议设置时间维度

转载 作者:行者123 更新时间:2023-12-05 02:09:26 25 4
gpt4 key购买 nike

我一直在阅读有关 OLAP 处理的体系结构类型的资料,特别是星型模式概念。我目前正在设置用于测试的数据库。

我的情况

我有 750 个传感器,每个传感器每分钟都会将数据发布到 SQL 数据库中。目前,我的方法是发布 if 值发生变化。进一步考虑这个问题让我想知道它是否会在确定是否存在数据丢失与未更改的值时产生问题,并让我重新考虑计划的发布。

插入传感器值的软件以 2020-01-23 13:48:52 格式发布时间戳。与此同时,还会发布传感器名称和传感器值。因此,如果算上主键,我的事实表中有 4 列。

我知道我需要对我的数据进行一些中间处理(可能是一个表,该表按计划进行处理以使其符合模式,然后删除),但现在我试图保留这个一次解决一个问题。

这是我目前的设想,但考虑到我需要的分辨率,我不知道如何处理时间维度。

Star Schema Mock-up

我的问题

目前,我的方法是发布如果值发生变化。进一步思考这个问题让我想知道它是否会在确定是否存在变化时产生问题数据丢失与未更改的值对比,让我重新考虑预定的发布。

这是确定数据丢失的一个有效问题,还是有其他解决方法?

考虑到我需要的分辨率,样本时间维度应该是什么样的?

最佳答案

如果我对您的情况的理解正确,您正在记录代表某个时间点的某些系统状态的值。换句话说,您正在及时捕获系统的快照。在星型模式中,您应该使用 "periodic snapshot fact table" .这样的事实表会捕获值,而不管它们是否已更改,因为它们的粒度是日期/时间的单位,而不是事务。

时间维度可以通过多种方式建模。我会做以下事情:

创建维度“日期”来处理日历日期。 Cereal :一个日历日。跨度:从你有数据的那一天,到今天包括在内。

创建维度“时间”来处理一天中的时间。 Cereal :一分钟。跨度:24 小时(因此此表中的总记录为 60 分钟 * 24 小时)。

将日期和时间键添加到事实表。

我还会将时间戳记作为事实表中的退化维度,以便在需要时访问秒数。

关于database-design - 为星型模式中的决议设置时间维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com