XMLA端点对Power BI意味着什么,以及如何免费对其进行测试?

Power BI XMLA端点的测试环境

XMLA端点连接以进行公共预览 已于2019年3月下旬宣布。到今天为止,它仅适用于Power BI 保费容量用户。对于许多没有高级功能的人来说,这听起来像是一个巨大的限制,但他们希望了解它的工作原理。在本文中,我向您展示了一种尽快获得Power BI XMLA端点的简便方法。在开始之前,我想简单地解释一下XMLA终结点,以及它对Power BI用户的真正意义。

Power BI就像洋葱!它有层!

一般而言,Power BI具有两个不同的层,表示层和数据模型层。表示层是可视层,您可以进行所有这些引人注目的报告和可视化。顾名思义,数据模型是在其中创建数据模型的层。您可以通过XMLA连接性访问该层。

在Power BI Desktop文件中,您可以看到两个图层:

Power BI的不同层

XMLA如何与Power BI中的不同层相关?

您可能已经猜到了,XMLA仅与数据模型层有关,而与表示层无关。所以你可能 连接到数据模型, 浏览数据模型, 将数据从模型导入到其他平台,例如Excel 等等。

XMLA并不新鲜!

认真吗是的,认真。这不是新的。已经到了 多年了,也许您已经使用了无数次。每当 您正在连接到SQL Server Analysis Services的一个实例 来自任何工具(例如SQL Server Management Studio)的多维或表格形式 (SSMS),Power BI Report Builder,Excel,Tableau等…,您正在使用XMLA connectivity indeed.

Power BI是SSAS表格的实例

是真的。 Power BI运行SSAS表格的本地实例 模型。因此,每当您打开Power BI桌面文件(PBIX)时,Power BI都会创建一个 具有随机本地端口号的SSAS表格模型的本地实例,可以 只能在本地计算机上访问。关闭文件时,本地 SSAS 表格实例关闭,并释放其端口号。

我首先揭示了一个事实,你可以 在2016年6月通过各种工具(例如SSMS,SQL Server Profiler,Excel等)连接到Power BI Desktop中的基础数据模型。因此,我们确实使用XMLA长时间连接到Power BI数据模型。我们甚至可以更进一步 将我们的Power BI数据模型导入SSAS表格实例。从这个意义上讲,我们实际上是从Power BI生成XMLA脚本,以在SSAS 表格中创建相同的数据模型。多么酷啊?

太…什么是新的?

继续阅读 “XMLA端点对Power BI意味着什么,以及如何免费对其进行测试?”

使用“IN” Operator in 达克斯

达克斯中的IN运算符

如果您是一名SQL专家,那么我敢打赌,您已经使用过无数次“ IN”运算符。您可能还会在DAX中寻找相同的功能,并且我确定您找到了许多精彩的博客文章,向您展示了如何在DAX中模仿相同的功能。的 Power BI桌面的十月发行 充满了新的分析功能,例如 分组,装箱和TOPN 过滤。最重要的是,DAX中的“ IN”运算符是本文撰写时尚未记录的一项新功能,或者至少我在互联网上找不到任何功能。在本文中,我将向您展示如何在DAX表达式中使用它。

要求

注1: 您需要安装SSMS2016才能编写本文中提供的DAX查询。或者,您可以使用 达克斯 Studio 。如果出于任何原因您不能使用SSMS 2016或DAX Studio,而仅拥有Power BI Desktop,请不用担心,我也会在Power BI Desktop中提供一些示例。

笔记2: 如果您运行早期版本的SQL Server,那绝对没问题。对于AdventureWorksDW2016CTP3,本文没有什么特别之处,您没有从示例数据库的旧版本中获得。但是请记住,SQL Server 2016 Developer Edition现在是免费的,您可以非常轻松地下载它。 看一下这个 如果您有兴趣了解操作方法。

入门

下载最新版本的Power BI Desktop之后,请运行它

  • 从SQL Server“获取数据”
  • 从AdventureWorksDW2016CTP3将“ FactResellerSales”,“ DimProduct”,“ DimProductCategory”,“ DimProductSubCategory”和“ DimDate”加载到Power BI Desktop模型
  • 通过从以下路径打开“ msmdsrv.port.txt”文件,找到Power BI Desktop的本地端口:

“%UserProfile%\ AppData \ Local \ Microsoft \ Power BI桌面 \ AnalysisServicesWorkspaces \ AnalysisServicesWorkspaceXXXXXXXX\数据”

注意: XXXXXXXX后缀是一个随机数。 

  • 打开SSMS 2016并连接到Power BI Desktop模型作为Analysis Services本地服务器。您是否想了解更多有关如何通过不同软件连接Power BI Desktop模型的信息?然后 看一下这个.

短信服务连接到Power BI桌面模型

  • 打开一个MDX新查询
  • 运行以下DAX查询
EVALUATE
    SUMMARIZE('FactResellerSales'
                , DimDate[CalendarYear]
                , "Total Reseller Sales"
                , SUM('FactResellerSales'[SalesAmount])
                )

结果如下:

在SSMS中编写DAX

现在,我们要过滤“ CalendarYear”,以便查询仅显示2011年和2012年的销售值。在先前版本的Power BI Desktop,Power Pivot或SSAS表格模型中,我们必须执行的一种常见方案是使用逻辑OR运算符“|| 如下所示:

EVALUATE
FILTER(SUMMARIZE(FactResellerSales
                    , DimDate[CalendarYear]
                    , "Total Reseller Sales"
                    , sum(FactResellerSales[SalesAmount])
                    ) , DimDate[CalendarYear] = 2011 ||  DimDate[CalendarYear] = 2012
                    )

从现在开始,我们可以使用DAX中的“ IN”运算符编写上述查询,如下所示:

EVALUATE
    FILTER(
        SUMMARIZE(FactResellerSales
                    , DimDate[CalendarYear]
                    , "Total Reseller Sales"
                    , sum(FactResellerSales[SalesAmount])
                    ) 
            , DimDate[CalendarYear] 
                IN (2011, 2012)
            )

结果如下:

达克斯中的IN运算符

继续阅读 “Using “IN” Operator in 达克斯”