快速提示: 时间 Dimension with 时间 Bands at Seconds Granularity in Power BI 和 SSAS表格

时间 Dimension with 时间 Bands at Seconds Granularity in Power BI 和 SSAS表格

过去我也写过其他有关此主题的文章,您可以找到它们 这里 这里。在第一篇文章中,我解释了如何创建“Time”时间带的维度 分钟 粒度。然后,我的一位客户要求“Time”几秒钟内的尺寸,这鼓励了我写第二篇博客文章。在第二篇博文中,虽然我没有’t做时间带,所以我在这里写第三篇文章,这是第二篇文章支持5分钟,15分钟,30分钟,45分钟和60分钟的时间带的变体。“Time”尺寸降至秒。在这篇快速文章中,我直接跳到重点,向您展示如何生成“Time”维度以三种不同的方式,即在SQL Server中使用T-SQL,使用Power Query(M)和DAX。然后是这里:

时间 Dimension at Second Grain with 功率查询 (M) Supporting 时间 Bands:

在查询编辑器中复制/粘贴以下代码’s Advanced Editor to generate 时间 dimension in 功率查询:

let
Source = Table.FromList({1..86400}, Splitter.SplitByNothing()),
    #"Renamed Columns" = Table.RenameColumns(Source,{{"Column1", "ID"}}),
    #"时间 Column Added" = Table.AddColumn(#"Renamed Columns", "时间", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0,0,0,[ID]))),
    #"Hour Added" = Table.AddColumn(#"时间 Column Added", "Hour", each 时间.Hour([Time])),
    #"Minute Added" = Table.AddColumn(#"Hour Added", "Minute", each 时间.Minute([Time])),
    #"5 Min Band Added" = Table.AddColumn(#"Minute Added", "5 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0, 0, Number.RoundDown(Time.Minute([Time])/5) * 5, 0))  +  #duration(0, 0, 5, 0)),
    #"15 Min Band Added" = Table.AddColumn(#"5 Min Band Added", "15 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0, 0, Number.RoundDown(Time.Minute([Time])/15) * 15, 0))  +  #duration(0, 0, 15, 0)),
    #"30 Min Band Added" = Table.AddColumn(#"15 Min Band Added", "30 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0, 0, Number.RoundDown(Time.Minute([Time])/30) * 30, 0))  +  #duration(0, 0, 30, 0)),
    #"45 Min Band Added" = Table.AddColumn(#"30 Min Band Added", "45 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0, 0, Number.RoundDown(Time.Minute([Time])/45) * 45, 0))  +  #duration(0, 0, 45, 0)),
    #"60 Min Band Added" = Table.AddColumn(#"45 Min Band Added", "60 Min Band", each 时间.From(#datetime(1970,1,1,0,0,0) + #duration(0, 0, Number.RoundDown(Time.Minute([Time])/60) * 60, 0))  +  #duration(0, 0, 60, 0)),
    #"Removed Other Columns" = Table.SelectColumns(#"60 Min Band Added",{"时间", "Hour", "Minute", "5 Min Band", "15 Min Band", "30 Min Band", "45 Min Band", "60 Min Band"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Removed Other Columns",{{"时间", type time}, {"Hour", 在 t64.Type}, {"Minute", 在 t64.Type}, {"5 Min Band", type time}, {"15 Min Band", type time}, {"30 Min Band", type time}, {"45 Min Band", type time}, {"60 Min Band", type time}})
in
#"Changed Type"
继续阅读 “Quick Tips: 时间 Dimension with 时间 Bands at Seconds Granularity in Power BI 和 SSAS表格”

快速提示: 时间 Dimension with Granularity of Seconds in Power BI 和 Analysis Services Tabular Models

快速提示: 时间 Dimension with Granularity of Seconds in Power BI 和 Analysis Services Tabular Models
摄影者 马库斯·斯皮克(Markus Spiske)

我前阵子发表的文章 I showed different methods of creating 时间 dimension in Power BI 和 Tabular models. The 时间 dimension I explained was in Minutes. 在 this post I show you simple way to create 时间 dimension supporting Seconds. As this is a quick tip, I only show you how to get the 时间 和 ID columns in the 时间 dimension. If you need to add time bands (time buckets) 查看此以获取更多详细信息.

时间 Dimension in Seconds Grain with 功率查询 (M):

Copy/paste the code below in Advanced Editor to generate 时间 dimension in 功率查询:

let
Source = Table.FromList({1..86400}, Splitter.SplitByNothing()),
#"Renamed Columns" = Table.RenameColumns(Source,{{"Column1", "ID"}}),
#"时间 Column Added" = Table.AddColumn(#"Renamed Columns", "时间", each 时间.From(#datetime(1970,1,1,0,0,0)+#duration(0,0,0,[ID]))),
#"Changed Type" = Table.TransformColumnTypes(#"时间 Column Added",{{"ID", 在 t64.Type}, {"时间", type time}})
in
#"Changed Type" 
时间 Dimension in 功率查询

时间 Dimension in Seconds Grain with 达克斯:

在Power BI或SSAS表格模型的新计算表中运行以下DAX表达式:

时间 in 达克斯 = ADDCOLUMNS(
                       通用系列(1, 86400, 1)
                        , "时间", TIME(0, 0, 0) + [Value]/86400
                        )
时间 Dimension in Seconds Level with 达克斯
继续阅读 “Quick Tips: 时间 Dimension with Granularity of Seconds in Power BI 和 Analysis Services Tabular Models”

时间 Dimension in Power BI 和 SSAS表格 Model Supporting Minutes 时间 Bands

2018-05-23 12_58_48-Symbols(在Visio中打开).vsdx-Visio Professional

日期维度已在Internet上进行了很多讨论,您可以在此找到很多有价值的文章。但是,如果您需要在时间级别上分析数据怎么办?客户需要在分钟级别分析其数据。这意味着事实表的粒度将处于分钟级别。因此,如果他们以秒为单位将数据存储在事务数据库中,那么我们需要将该数据聚合为分钟级。我不想去那里,只是要记住,事实表的粒度是您一开始就必须考虑的问题。在大多数情况下,即使不是所有情况,最好还是有一个单独的时间维度。然后,您需要在事实表中有一个TimeID或“时间”列,以便能够在“时间”维度和事实表之间创建关系。在本文中,我向您展示了两种在Power BI中创建时间维度的方法:

  • Creating 时间 dimension with 达克斯
  • Creating 时间 dimension with 功率查询 (M)

Alternatively, you can take care of the 时间 dimension in the source system like 的SQL服务器. 继续阅读 和 you’ll找到一个T-SQL代码作为补充。

我在这里说明的技术也可以在SSAS表格模型和Azure分析服务中完成。

要求:

要遵循构建测试模型的步骤,您需要:

  • Power BI桌面:从此处下载最新版本
  • 包含时间或日期时间的示例事实表。我修改了AdventureWorksDW的FactInternetSales,并使其可以Excel格式下载(在文章底部找到下载链接)

继续阅读 “Time Dimension in Power BI 和 SSAS表格 Model Supporting Minutes 时间 Bands”

Power BI中的并排角色扮演维度

角色扮演的维度是不时讨论的那些概念之一。我还发布了有关实施的文章 表格模型中的角色扮演维度.

回顾一下, SSAS表格中的角色扮演维度 文章我解释了三种不同的解决方案:

  1. 将角色扮演维度多次导入模型
  2. 在源端创建数据库视图(如果您的源来自RDBMS,例如SQL Server,Oracle等…),然后将数据导入模型
  3. 使用DAX中的USERELATIONSHIP函数将不活动的关系保留在模型中,并创建一些措施来处理不同的角色

在这篇文章中,我解释了上面第三个选项的实现。在这种情况下,您需要根据事实表中的角色创建特殊的计算量度。最常见的角色扮演维度是“日期”维度。考虑到您必须在报告的单个图表中显示按订单日期,到期日期和发货日期显示的Internet销售额。在这种情况下,拥有3个不同的日期表不会帮助我们实现目标。

Power BI的新手?在此处快速了解Power BI中的数据可视化。

在Power BI Desktop中定义新措施

基本上,我在这篇文章中要解释的是通过添加新的Calculated度量来使用FactInternetSales表和DimDate维度之间的非活动关系。在这种情况下,我们将能够在单个图表中按示例显示不同角色的销售额。

继续阅读 “Power BI中的并排角色扮演维度”