自动化测试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表格模型”

将Power BI数据导出到SQL Server

将Power BI数据导出到SQL Server

2019年4月更新:如果您有兴趣将数据模型从Power BI Desktop或Power BI Service导出到CSV或SQL Server 看一下这个. The method 在这里解释 仅适用于具有XMLA端点连接的Power BI Premium或嵌入式功能。

在之前的博客文章中,我解释了如何将Power BI数据导出到Excel和CSV 这里这里。如本文所承诺的,我将解释如何将数据从Power BI Desktop导出到SQL Server。

汉斯·彼得·菲斯特 已经解释了如何 使用R脚本将数据从Power BI Desktop导出到SQL Server。尽管汉斯做得很出色,但是如果您没有任何R经验,甚至不知道如何安装和调用R库,要使其正常工作可能会有些困难。关于我自己,我不是R家伙,但是,谁知道,也许我会做到。 微笑 

但是,如果您不想使用R,该怎么办?如果您对BI的投入比对分析的投入更大,那么使用R可能并不是您的最佳选择。幸运的是,还有另一种将Power BI数据导出到SQL Server的方法,它对BI更友好。您可以使用SSIS(SQL Server集成服务)将Power BI数据导出到SQL Server。因此,如果您熟悉SSIS,则可能是您的首选。

关于Hans,在本文中,我将详细解释他将数据从Power BI Desktop导出到SQL Server的方法,以便对R不太熟悉的任何人都可以使用它。我还将说明如何使用SSIS将数据从Power BI Desktop导出到SQL Server。如果您知道其他方法,请在下面的评论部分中告诉我。

使用R将数据从Power BI Desktop导出到SQL Server

如前所述,汉斯已经解释了这种方法 这里。因此,我无法确切解释他的所作所为,但是,我使用他的方法将数据从现有的Power BI Desktop模型导出到SQL Server,并逐步进行解释。

要求

要使此方法有效,您需要:

  • 最新版本的Power BI Desktop,可以从以下位置下载 这里
  • 可以访问您自己的计算机上或本地网络中的服务器上的SQL Server实例,以将数据导出到
  • 无论是安装Windows R还是可以从以下位置下载 这里 或使用现有R-Server或安装SQL Server 2016 R服务
  • 安装R的RODBC库,可以从以下位置下载该库 这里

注意: 我尚未安装R Studio,也没有出现任何问题。

为R和SQL Server R服务安装RODBC库

如前所述,您可以安装R或SQL Server R服务或R-Server,但是由于我自己还没有尝试过R-Server,所以我仅说明如何在R和SQL Server R服务中安装RODBC。

您必须从上面提供的链接下载该库,然后解压缩包含“ 远程ODBC”文件夹的zip文件的内容。然后,您真正需要做的就是将“ 远程ODBC”复制到“ Program Files”文件夹中R或SQL Server 2016文件夹中的“ library”文件夹中。

R中的库文件夹

的SQL服务器 2016中的库文件夹

它是如何工作的?

打开一个您愿意将其数据导出到SQL Server表中的现有Power BI Desktop模型,然后执行以下步骤:(我使用在“ AdventureWorksDW。您可以在本文末尾下载我的Power BI Desktop模型。)

继续阅读 “将Power BI数据导出到SQL Server”

使用DAX中的表和行构造器在SSAS表格中创建自定义表

Dynamic_Measures_in_Card_Visual _-_ Power_BI_Desktop

不久前,我正在进行一个Power BI项目,客户希望在模型中直接定义一个新表。在Power BI Desktop中最简单的方法是“输入数据”,它通过键入或粘贴新内容来创建新表。前几天我在想那个项目,然后想着,嘿,当SSAS Tabular 2016中没有可用的Power Query(M)语言时,我们如何在SSAS Tabular中做同样的事情。好消息是 功率查询将在SQL Server vNext的下一版本的SSAS Tabular中可用。但是,在此之前,解决方法是将数据输入CSV文件,然后将其加载到模型中。另一种方法是使用SQL Server 2016表格模型在DAX中实现自定义表 表和行构造器。在本文中,我向您展示了一种使用DAX中的表构造函数在SSAS Tabular中创建自定义表的方法。您可以在Power BI中执行相同的原则。因此,如果您不想使用“输入数据”功能(该功能有效地使用Power Query在Power BI Desktop中创建新表),则可以使用DAX进行此操作。

要求

如果还没有SQL Server 2016,则可能是时候下载并安装它了。在本文中,我将AdventureWorksDW用作示例数据库。

情境

您参与了SSAS表格项目,客户要求使用动态卡在Power BI中提供报告,以便卡可视化视图中显示的值应根据从切片器选择的度量来动态更改。您在模型中有几种不同的度量,客户希望仅在一个Card视觉中动态显示其中的一些度量。考虑您在卡中显示以下措施:

  • Total 互联网销售
  • 互联网销售 in 2014
  • Total Number of 互联网销售 Transactions

您必须创建一个逻辑,以便用户可以选择以上任意一种措施以在单个Card视觉中显示。

这个怎么运作

满足要求后,就可以开始在SQL Server数据工具(SSDT)中实现上述方案了。在SSAS Tabular 2016中创建计算表非常容易。我们需要做的就是创建一个包含两列的自定义表。一列存储度量的友好名称,另一列包含度量的DAX表达式。您可能已经注意到,我在谈论在DAX中创建自定义表格并将其填充值。继续阅读以了解操作方法。我们要做的是使用DAX中的表构造函数创建一个计算表。 表和行构造器 在SSAS表格中的DAX的早期版本中不可用。它们非常类似于 清单 或清单 元组 就像我们在MDX中拥有的一样。

稍后,当我们在SSDT中创建示例模型时,我将对此进行解释。 继续阅读 “使用DAX中的表和行构造器在SSAS表格中创建自定义表”

在SSMS和SSDT中查询Azure 的SQL数据仓库

短信服务和SSTD中的Azure 的SQL数据仓库

前一阵子我写了一篇关于 蔚蓝 的SQL数据仓库和Power BI 我解释了如何安装新的Azure 的SQL数据仓库实例以及如何在Power BI中可视化Azure 的SQL DW 数据。在这篇文章中,我将说明如何在SSMS和Visual Studio中查询Azure 的SQL DW 。

要求

从Visual Studio查询Azure 的SQL数据仓库

在最新版本的SQL Server管理Studio(SSMS)2016之前,用于查询Azure 的SQL数据仓库的唯一可用工具是Visual Studio 2013或2015的SQL Server数据工具(SSDT)。这是使用SSDT 2015进行查询的方法Azure 的SQL数据仓库:

  • 打开SQL Server数据工具2015
  • 从“查看”菜单中单击“ 的SQL对象资源管理器”

的SQL服务器对象资源管理器Visual Studio

  • 点击“添加SQL Server”

将服务器添加到SQL Server对象资源管理器Visual Studio

在SQL Server对象资源管理器Visual Studio中连接到Azure 的SQL数据仓库

  • 输入“服务器名称”
  • 如果您不记得服务器名称,请打开Web浏览器并登录Azure门户
  • 点击“ 的SQL数据库”
  • 单击之前创建的任何所需的Azure 的SQL数据仓库。确保数据库为“在线”

蔚蓝 Portal中的Azure 的SQL数据仓库

继续阅读 “在SSMS和SSDT中查询Azure 的SQL数据仓库”