模型运行日期的 DateTime 或整数

Posted

技术标签:

【中文标题】模型运行日期的 DateTime 或整数【英文标题】:DateTime or Integer for Model Run Date 【发布时间】:2020-11-10 05:39:42 【问题描述】:

我的数据模型中有一些包含数百万行的事实表。 每个表都有自己的刷新周期。 现在,我已将系统日期作为新列添加到 Power Query 中的每个表中,以显示上次刷新。 我正在使用这个功能:

DateTime.LocalNow() as datetime  

由于表包含数百万行,我想问这里哪种数据类型最好? 如有必要,我可以将 DateTime 转换为十进制数,然后在 Power BI 中使用 FORMAT 进行更改,并将十进制数测量回 DateTime。 你会怎么做? 模型运行日期为十进制数还是日期时间? 从记忆的角度来看有什么不同吗?

【问题讨论】:

不同的数据类型在内存中可以有不同的压缩。您可以检查模型中的哪一列需要最多空间。此外,您真的需要将此列添加到主数据集中吗?也许你可以创建新表,只包含 1 行的信息。 sqlbi.com/tv/… @msta42a:非常感谢您的支持!您将如何构建一个新表,其中包含每个表的上次刷新时间的信息?每个表的刷新时间不同。 我没有针对您的场景进行测试,但是您可以在另一个中引用一个“查询”/“表”作为源。例子。我有数据集名称“薪水”和一些列日期、支出、名称。我可以在高级编辑器中创建一个新的空白查询,我可以在其中输入: let Source = Salary[Date] #"Removed Duplicates" = List.Distinct(Source) in #"Removed Duplicates" 这给了我一个来自我的唯一日期的列表工资表。在下一步中,您可以添加具有源表名称的列。对所有表重复,然后追加查询 @msta42a:太棒了!感谢那。以及如何将每个表的模型运行数据添加到这个新表中?我的意思是,我仍然需要原始表中的这些信息,对吗?新表只是模型运行日期的摘录。这张新桌子有什么帮助? 【参考方案1】:

Power BI 使用列压缩,因此列的内存大小主要取决于该列中不同值的数量。因此,任何只有一个值的列在内存方面都可以忽略不计,并且数据类型不会产生任何重大差异。

【讨论】:

以上是关于模型运行日期的 DateTime 或整数的主要内容,如果未能解决你的问题,请参考以下文章

实体框架中的日期时间文化问题

datetime处理日期和时间

datetime处理日期和时间

如何将 Timestamp 转换为 Date 或 DateTime 对象?

Python标准库datetime之datetime模块详解

DateTime::Format::CLDR 解析长捷克日期的问题