在自助服务环境中构建日期表的可能性有哪些?

多年来,每当我无法在数据流上游创建日期表时,我都会使用 DAX 代码创建日期表。现在我意识到还有另一种方法可以做到这一点。让我们看看替代方案是什么以及它们如何进行比较。帖子《在自助服务环境中构建日期表的可能性有哪些?》首先出现在《走向数据科学》上。

来源:走向数据科学

简介

多年来,我一直使用 DAX 代码在表格模型中构建日期表,当时没有其他来源可以创建此类表。

我创建了一个模板代码并一遍又一遍地重复使用它。它在多种情况下都能很好地发挥作用。

我将其分发给我的客户,他们都对此感到满意。

但大约两周前,我与一位同事进行了一次讨论,这让我看到了一种方法,直到现在我才想到。

那么,让我们看看构建日期表的变体并进行比较。

但无论如何做,了解语义模型中日期表的要求很重要。

存在 DWH 时会发生什么?

首先,当我拥有数据存储和语义模型源时,无论是关系数据库、Fabric Lake 还是任何其他集中式数据存储,我都会在那里构建它并在语义模型中使用它。

用于构建此类表的可用选项非常广泛且灵活,DAX 和 Power Query 都没有更高效。

因此,在这种情况下如何做是不存在问题的。

DAX 表

在 DAX 中生成日期表相对容易且直接。

DAX 提供了大量用于向日期表添加列和功能的函数。

您始终从 CALENDAR() 调用开始设置开始和结束日期。

您可以使用固定值(例如 MIN()/MAX() 调用),基于可用数据从数据模型内的数据表中获取开始日期和结束日期,也可以使用某些 (Power Query) 参数。

例如,像这样:

暗淡日期 =

日历(

日期 ( 年 (

MIN('在线销售订单'[日期])

  • ), 1, 1),日期 ( 年 (MAX ('在线销售订单'[日期])), 12, 31))由于 Microsoft 要求在日期表中包含完整年份,因此我从 1 月 1 日开始,到 12 月最后一天 (31.12.) 结束。接下来,您可以添加更多列以将年、季度、月和日添加到表中。您可以使用 ADDCOLUMNS() 在表的定义中执行此操作:年/季度