0

比方说,我有一个日期维度和我的业务需求我知道,我需要去的最细粒度是检查事件发生的月份的具体一天。加载日期或日期时间到日期维

我给出的数据为我提供了事件发生的准确时间(YYYY-MM-DD HH:MM:SS)。我有两个选项:

  1. 在将数据加载到日期维度之前,从日期中分割HH:MM:SS。
  2. 在我的日期维度中创建时间属性并插入完整的日期时间。

我看到它的方式,我应该选择1.这将删除多余的数据并节省一些空间。但是,如果我选择第2种方式,业务需求是否会发生变化,或者如果我的经理突然想要更细化,我不需要修改我的原始设计。哪个选项更常用?有没有更多的选择,我没有考虑?

更新 - 跟进问题

我每个月都会收到新的数据。如果我使用所有日期的预建日期维度,那么我需要每月运行我的脚本以使用该月份的新日期填充表格,或者我会有一个连续的过程,每天在表格中插入一行,那会是那个日期?

回答

3

我同意你的看法,并避免选项2.标准日期维度表是在各个日期级别。如果您确实需要按照一天中的时间进行分析,则可以在一天中创建一秒钟的额外时间维度,并将其链接到事实表中的维度。

您的日期维度应该由脚本自动创建,而不是从发生事件的日期创建。这使您可以使用标准的预建维度,从其他事实和未发生事件的日期中分析各种事件。

我还将全日期/时间戳记作为事实表中的列以及维度表的'DateKey'。这将允许您对时间戳进行一些可见性/分析,您不会丢失数据,并且仍然允许您按日期维度进行分析。

更新 - 跟进问题

您的预建日期维度(这样做的标准方式),通常会包含在未来的某个日期。例如,没有理由不在表格中再加入5年的日期。但是如果你希望它随着时间逐渐增长,你可以有一个脚本每天运行一次,一个月运行一次,或者每年运行一次以添加新日期。它完全取决于你!有很多用于构建日期维度的示例脚本 - 只是Google日期维度脚本。它们以你选择的语言存在,例如SQL,C#,电力查询等。

+0

你的答案绝对清除了一些事情。我通过后续问题更新了我的问题。谢谢! – Amous

+0

我已更新我的答案,以回应您的跟进。 – Rich

+0

谢谢,清理了我的困惑! – Amous