gpt4 book ai didi

time - 如何在时间维度指定无效时间?

转载 作者:行者123 更新时间:2023-12-02 03:29:44 25 4
gpt4 key购买 nike

我正在为我的数据仓库中的时间构建一个时间维度。我已经有一个日期维度。

如何表示未知时间?在我的 DimDate 维度中,我将 01/01/1753 标记为保留给未知日期,但我认为时间会有点困难。我们不允许在我们的事实表中使用 NULL。我该怎么做,那一行看起来像什么?

最佳答案

您声明“我们不允许在我们的事实表中使用 NULL”,但问“我如何表示未知时间?”

假设您在 FACT 表中使用数据类型 TIME + 对来自源系统的数据强制执行 NOT NULL 约束 => 您根本无法将未知\无效时间插入到您的事实中,因此应该没有问题。

上述情况的明显异常(exception)是源系统报告的无效业务明智值,例如 Sunil建议 ('00:59:59.9999999') 但由于显而易见的原因,这是非常不常见、不稳定的解决方案(更改需求可以很容易地将此​​值转换为有效值)

如果您选择允许(我希望您这样做)来自您的源系统的具有 NULL 值或无效日期的记录输入事实,那么最佳做法是在我们的 DimTime 上使用代理键并将它们作为 FK 插入您的 FACT表——这将很容易让您在维度中表示有效值和无效值。这种方法也可以很容易地支持无效商业值(value)('00:59:59.9999999')的方法,这样的值得到 FK_DimTime=-1。

我强烈建议允许来自源系统的特定类型的垃圾进入 FACT(即无效\缺失\NULL 日期\时间值)表,只要您在相关的 DIM 中清楚地标记它,因为这往往会促使用户提高源系统中的数据质量。

这是关于此事的一些背景 https://www.kimballgroup.com/1997/07/its-time-for-time/ https://www.kimballgroup.com/2004/02/design-tip-51-latest-thinking-on-time-dimension-tables/

关于time - 如何在时间维度指定无效时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711683/

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