快速提示:如何从Power Query中的其他查询中按另一列过滤一列

从Power Query中的不同查询中按列过滤列

不久前,我拜访了一个客户,询问他们是否可以按Power BI中另一个查询的列来过滤查询数据。我当然可以。在这篇文章中,我解释了如何在Power Query中实现。关键是要知道如何引用查询以及如何在Power Query中引用该查询的列。当您有一个可从Power Query中每个受支持的数据源中获取的查找表,并且想要按查找查询中的相关列过滤另一个查询的结果时,这很有用。那样的话’会有一种动态过滤。因此,每当您刷新了模型(如果新记录已更改或添加到查找查询的源中)时,表将在Power Query的过滤步骤中自动包括新值。

引用查询

这很简单,您只需要使用查询的名称。如果查询名称包含特殊字符(例如空格),则需要用数字符号和双引号将其引起来,例如 #”QUERY_NAME”。因此,如果要引用另一个查询,请在一个新的空白查询中使用Power Query(M)脚本,如下所示:

let
    Source = Product
in
    Source

或类似的东西

let
    Source = #"Product Category"
in
    Source

引用列

引用列也很简单。当您引用一列时,您需要在前面提到引用查询名称以及括号中的列名称。因此,格式将如下所示:”QUERY_NAME”[COLUMN_NAME]。结果是该特定列的值的列表。

let
    Source = #"Product Category"[Product Category Name]
in
    Source
在Power Query中引用另一个查询中的列
继续阅读 “快速提示:如何从Power Query中的其他查询中按另一列过滤一列”

快速提示:Power BI和Analysis Services表格模型中具有秒级粒度的时间维

快速提示:Power BI和Analysis Services表格模型中具有秒级粒度的时间维
摄影者 马库斯·斯皮克(Markus Spiske)

我前阵子发表的文章 我展示了在Power BI和表格模型中创建时间维度的不同方法。我解释的时间维度以分钟为单位。在本文中,我向您展示了创建支持Seconds的Time维度的简单方法。因为这是一个快速提示,所以我仅向您展示如何获取“时间”维度中的“时间”和“ ID”列。如果您需要添加时间段(时间段) 查看此以获取更多详细信息.

时间维度(以秒为单位)与功率查询(M):

在高级编辑器中复制/粘贴以下代码,以在Power Query中生成“时间”维度:

let
Source = Table.FromList({1..86400}, Splitter.SplitByNothing()),
#"Renamed Columns" = Table.RenameColumns(Source,{{"Column1", "ID"}}),
#"时间 Column Added" = Table.AddColumn(#"Renamed Columns", "时间", 每 时间.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 类型" 
功率查询中的时间维度

达克斯的时间维度(以秒为单位):

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

时间 in 达克斯 = ADDCOLUMNS(
                       通用系列(1, 86400, 1)
                        , "时间", TIME(0, 0, 0) + [Value]/86400
                        )
达克斯的时间维度(以秒为单位)
继续阅读 “快速提示:Power BI和Analysis Services表格模型中具有秒级粒度的时间维”

在组织中实施本地数据网关(企业模式)的权威性指南

本地数据网关实施的权威指南
照片来源: 凯拉·杜洪(Kayla Duhon)

如果 您是在Azure 动力平台中工作的商业智能顾问 Logic Apps和Azure分析服务的格局,您可能会感到 本地数据网关是您参与活动的重要部分之一 您的客户。如果您安装本地数据网关可以顺利进行 已经有一个周到的实施计划,否则,它很快就会变成 如果你不去的话’t have one. 在这篇文章中,我 do my best to provide you some 可以帮助您实现本地数据网关实施的准则 规划。在操作之前,期间和之后,请考虑以下几点 engagement:

  • 了解用法
  • 敬业文化
  • 环境(所有人参与)
  • 通讯
  • 安全
    • 企业/环境防火墙
    • 代理服务器
    • 身份访问管理
  • 文件/实施计划
  • 安装,配置和测试

这是您应考虑的重要点图:

实施本地数据网关(企业模式)的权威性指南

用法

您 需要了解您的客户对本地数据网关的使用。如果 他们需要其Power Platform,Azure Logic Apps,Azure的网关 分析服务或所有这些。这很重要,因为您要么需要 访问您的客户’的Power BI Service或Azure门户或两者,或者您需要 协助您的客户在Azure或Microsoft中配置本地数据网关 Power BI Service. 的next points are:

  • 接触客户 ’■Azure门户和/或Power BI服务:客户决定是创建一个具有足够权限的新帐户还是为您提供现有帐户的凭据。确保您可以访问所有环境并且拥有安装/配置网关的必要权限非常重要。
  • 您协助/咨询客户方面的实施人员:您需要确保与该人员沟通,并查看他/她是否在实施日期之前了解要求。事先向他们发送日历邀请,以确保他/她当时在场。万一主要人员发生紧急情况,请务必请一位备用人员。
继续阅读 “在组织中实施本地数据网关(企业模式)的权威性指南”

自动化测试SSAS表格模型

自动化测试SSAS表格

在实际的SSAS 表格项目中,您需要运行许多不同的测试方案,以向您的客户证明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 and 日期
  • you want to slice [Internet Sales] by Year, Month, Year-Month and 日期

因此,您需要编写四个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表格模型”