自动化测试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和SSAS表格模型中的时间维度

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

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

  • 使用DAX创建时间维度
  • 使用Power Query创建时间维度(M)

另外,您可以在SQL Server等源系统中处理“时间”维度。继续阅读,你’ll找到一个T-SQL代码作为补充。

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

要求:

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

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

继续阅读 “支持分钟时间段的Power BI和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”

在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数据仓库”