快速提示: 时间 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 类型" = 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 类型"
继续阅读 “Quick Tips: 时间 Dimension with 时间 Bands at Seconds Granularity in Power BI 和 SSAS表格”

Power BI生态系统报告创作工具神秘化

Power BI报表工具混乱

如今,围绕Power BI工具创建报告的讨论很多,并且可以肯定的是,你们中的许多人可能已经下载并使用了其中的一些工具(如果不是全部)。您可能还已经认为某些工具’名称令人困惑。最近,我与具有许多SSRS报告撰写背景的人进行了有趣的交谈。我当时在谈论分页报告,并说我下载了Power BI报表生成器的最新版本…他马上说,等一下 …

  • 约翰:Power BI报表生成器?哦,我明白了’您可以使用它创建分页报告,然后可以将这些报告部署到SSRS实例中。
  • 我:不!那’s not the case I’m afraid.
  • 约翰:哦,我知道,我的意思是Power BI报表服务器,您可以将报表部署到Power BI报表服务器的实例。我就知道!
  • 我:不!那’s not what I’m talking about…
  • 约翰:什么……?

我敢打赌你们中的一些人与朋友或顾客进行过类似的交谈。好,在这篇文章中,我将向您和您的组织介绍一些有关报告创作工具的信息,以使您充分利用Power BI生态系统。

以下是当前为您提供的所有报告工具的列表:

  • Power BI服务:这是Microsoft在云中提供的SaaS(软件即服务)产品。组织中的用户可以根据其访问权限在Power BI Service中创建和发布数据,报告,仪表板。用户还可以计划对发布的数据进行数据刷新,以及安全地共享和分发内容。尽管在Power BI Service中可以创建或编辑报告,但出于多种原因,强烈建议您避免使用此方法。最明显的是,您在报表中所做的更改可能很快就会被从Power BI Desktop重新发布同一报表的其他人覆盖。从查看此博客文章 的SQLChick了解为什么应该避免直接从Power BI Service创建或编辑报告. 的reports are downloadable in PBIX format. 在此处使用Power BI服务.
  • Power BI桌面:这是一个桌面报告创作工具,可用于连接到各种类型的数据源或从中加载数据,准备,转换和清除数据,最后可视化数据。 Power BI桌面是主要的报表创作工具,其功能和灵活性比Power BI Service高得多。例如,在Power BI服务中无法设置角色级别安全性(RLS)。报告文件的格式为PBIX。 从此处下载Power BI Desktop.
  • Power BI报表生成器(分页):分页报表又名“像素完美报告”顾名思义,其格式完全适合页面。该报告页面可能稍后会打印。您可以完全控制页面格式以在表格或图表中显示数据。这些报告不像Power BI Desktop报告那样具有交互性。分页报告基于RDL技术,这是SQL Server报告服务中的标准报告格式。在Power BI生态系统中用于开发分页报表的工具是Power BI报表生成器。报告文件类型为RDL。当前,您只能将分页报表发布到具有高级功能支持的工作区。 从此处下载Power BI报表生成器.
继续阅读 “Power BI生态系统报告创作工具神秘化”

快速提示: 时间 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. 的时间 dimension I explained was in Minutes. 在这篇文章中,我 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 类型" = Table.TransformColumnTypes(#"时间 Column Added",{{"ID", 在 t64.Type}, {"时间", type time}})
in
#"Changed 类型" 
时间 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”

自动化测试SSAS表格模型

自动化测试SSAS表格

在实际的SSAS Tabular项目中,您需要运行许多不同的测试方案,以向您的客户证明Tabular模型中的数据是正确的。如果您在适当的数据仓库之上运行表格模型,那么与在运营数据库之上构建语义模型时相比,您的生活会容易一些。但是,在表格模型上运行许多测试用例,然后在数据仓库上运行类似的测试并比较结果仍然是一个非常耗时的过程。因此,您的测试用例总是有两个方面,一方面是可以作为数据仓库的源数据库,另一方面是表格模型。有很多测试系统的方法,您可以在Excel中浏览表格模型,在Excel中连接到数据仓库并创建数据透视表,然后比较来自表格模型的数据和来自数据仓库的数据。但是,您可以在Excel中进行上述测试多少个量度和尺寸?

另一种方法是在表格模型端运行DAX查询。如果您的源数据库是SQL Server数据库,则需要在数据库端运行T-SQL查询,然后匹配双方的结果以证明表格模型中的数据正确。

在这篇文章中,我’d想与您分享一种自动在表格模型上运行的DAX查询的方法。

马上,这将是一篇漫长的文章,因此您可以一边享受阅读,一边煮咖啡或喝杯咖啡。

尽管我不会涉及另一端,源端或数据仓库端,但也值得将该部分自动化,因为您可以节省很多时间。一世’确保可以在SQL Server端开发类似的过程,但是,我暂时不做介绍。我什么’在本文中将要解释的只是生成和运行DAX查询并将结果存储在SQL Server中的许多可能方式之一。也许它并不完美,但是,这是一个很好的起点。如果您有更好的主意,最好在此帖子下方的评论部分与我们分享。

要求

  • 的SQL服务器分析服务表格2016年及更高版本(兼容级别1200及更高版本)
  • 的SQL服务器的实例
  • 的SQL服务器管理Studio(SSMS)

它是如何工作的

我什么’我要解释的很简单。我想生成并运行DAX查询并捕获结果。第一步是获取所有度量及其相关维度,然后将所有度量按所有相关维度切分并获得结果。最后,我捕获结果并将其存储在SQL Server临时表中。让’考虑一个简单的场景:

  • 您只有一项措施[互联网销售]‘Internet Sales’ table
  • 的measure is related to just one dimension, “Date” dimension
  • 的“Date” dimension has only four columns, Year, Month, Year-Month 和 日期
  • you want to slice [Internet Sales] by Year, Month, Year-Month 和 日期

因此,您需要编写四个DAX查询,如下所示:

EVALUATE
SUMMARIZE(
    'Internet Sales'
    , 日期'[Calendar Year]
    , "互联网销售", [Internet Total Sales]
)
EVALUATE
SUMMARIZE(
   'Internet Sales'
   , 'Date'[Month Name]
   , "互联网销售", [Internet Total Sales]
)
EVALUATE
SUMMARIZE(
    'Internet Sales'
   , 'Date'[Year-Month]
   , "互联网销售", [Internet Total Sales]
)
EVALUATE
SUMMARIZE(
     'Internet Sales'
    , 'Date'[Date]
    , "互联网销售", [Internet Total Sales]
)

很容易不是’是吗?可是等等。如果您有10个与4维相关的度量,而每个维都有10列,该怎么办?听起来很费力’是吗?好吧,在现实世界中,您赢了’不能按照所有相关维度对所有度量进行切片,但是您仍然需要做很多事情。我们要做的是生成并运行DAX查询,并将结果存储在SQL Server中的表中。多么酷啊?

好的,这是这样的…

  • 从SQL Server为SSAS表格实例创建链接服务器
  • 使用表格DMV生成DAX查询
  • 通过表格模型运行查询并在SQL Server临时表中获取/存储结果

继续阅读 “自动化测试SSAS表格模型”