Visual Studio 表格多维数据集:M 分区使用数据函数,导致访问与模型中定义的数据源不同的数据源

问题描述 投票:0回答:1

我在 Visual Studio 中有一个非常简单的表格多维数据集。我创建了参数来表示我的数据源(通过 Power Query 编辑器)。然后我编写了一个查询来创建一个表。该查询使用数据源参数。当我尝试处理该表时,遇到以下错误:

M 分区使用的数据函数 导致访问的数据源与中定义的数据源不同 型号

我该如何解决这个问题?

仅供参考,我的表查询是:

let
    Source = Sql.Database(#"Server", #"Database"),
    #"some table" = Source{[Schema="some_schema",Item="some_table"]}[Data]
in
    #"some table"

在下面的帖子中,有人说解决这个问题的方法是将SQL数据库声明为数据源。但是,如果我这样做,我的表将无法使用这些参数。而且,当我将表格多维数据集部署到 Power BI 服务时,Power BI 将看不到参数,这不是我想要的。我需要 Power BI 来查看参数,以便我可以在部署管道中设置参数规则。

m 分区使用数据函数,其结果是访问数据源差异

visual-studio powerbi ssas ssas-tabular
1个回答
0
投票

我在我的环境中使用 2 个分析服务器数据库做了一个工作示例。根据您的 SQL Server 环境调整此项。

您需要为每个数据库创建一个数据源。在 Visual Studio 中创建数据模型时,必须首先创建数据源。您不能仅通过

Source = Sql.Database()
从数据库加载表/分区。您必须引用数据源,例如
Source = #"SqlDatabase/server"
,其中
SqlDatabase/server
是数据源名称。

(请注意,这与 Power BI 不同。在 Power BI 中,没有数据源对象,只有表达式和分区。)

因此,从表格模型资源管理器中,右键单击数据源并选择新数据源
enter image description here

然后为每个数据库添加一个数据源。这是我的:
enter image description here

然后右键单击其中一个数据源并导入新表
enter image description here

像平常一样连接到数据库和表,然后单击转换数据按钮打开 Power Query。 您将看到“源”步骤将引用数据源。
enter image description here

您希望它基于参数有条件,因此选择 查询 > 参数 > 新参数:
enter image description here

我将我的Environment命名为文本类型,并带有测试和生产值列表的建议值,并将默认值和当前值设置为测试:
enter image description here

请注意,这些只是文本值。返回表查询中的“源”步骤并将其更改为使用

if
语句。请记住 Power Query 区分大小写,并注意引号和 # 的使用,如下所示:

let
    Source = if #"Environment" = "Test" then #"AnalysisServices/myserver_d01" else #"AnalysisServices/myserver_p01",

现在通过更改参数,您可以在数据库之间切换。

© www.soinside.com 2019 - 2024. All rights reserved.