【问题标题】:Power BI - Dynamically generate queriesPower BI - 动态生成查询
【发布时间】:2016-04-04 10:00:47
【问题描述】:

我正在使用 Power BI desktop 从 Azure Blob 导入数据,然后生成一些查询以在在线门户上共享。我的一个中间查询生成了一个 [name][table] 表,例如:

查询:所有表

name  | table 
--------------
name1 | Table1
name2 | Table2
name3 | Table3

名称是唯一的(在上一个查询步骤中按名称分组),并且表链接都指向我想在新查询中使用的表。目前我不得不从每个表中手动生成新的查询,然后在查询源上应用自定义查询函数来导出所需的最终查询,例如:

查询:NAME1

let
    Source = #"ALL TABLES",
    #"Name1" = DoSomething(Source, 0)
in
    #"Name1"

查询:NAME2

let
    Source = #"ALL TABLES",
    #"Name2" = DoSomething(Source, 1)
in
    #"Name2"

等等

目前还可以,因为我们正在设置,我们没有那么多条目。然而,一旦我们开始将真实数据放入 Azure Blob,我们需要生成的行数和查询数就会开始增长,而手工操作是无法管理的。

理想情况下,我可以向 ALL TABLES 查询添加最后一步,该步骤遍历所有行并从其中的表中生成新查询。此列表也可能会随着每次更新而改变,因此理想情况下,这应该会在从 Azure Blob 重新加载数据时自动生成新查询。

有没有办法通过 Power BI 查询来做到这一点?或者,是否有人在我可能会研究如何使外部脚本在 Power BI 项目上生成此脚本(例如,每天从我们的构建服务器运行的自动化脚本)?

【问题讨论】:

  • 我不确定您要通过所有这些查询来完成什么。你能澄清一下为什么你需要为每个这些查询一个新的查询吗?如果您尝试将行分组(类似于 C# 上的字典),那么您可能只使用 List.Generate 函数返回一个列表,其中每个单元格都包含一条记录。该记录将包含一个键列和所需行的列表。那将是一个查询。然后您可以使用“参考查询”功能(在右键菜单上),根据键值获取所需的列表。如果需要,您可以将其包装在函数中以使其更有用。
  • “所有表”表基本上包含我们正在跟踪的所有事件类型,以及定义每个单独属性的表的链接。由于每种事件类型都有不同的属性,将它们全部放在一个表下会使其非常稀疏,因此我们希望为每种类型提供一个单独的表。我感兴趣的是一种在 Power BI desktop 中自动生成这些表的方法,这样我们就不必在将新事件添加到我们的跟踪系统时手动更新它们。

标签: analytics powerbi powerquery azure-blob-storage


【解决方案1】:

对于像您所描述的那种真正动态的环境,我建议您使用像 azure SQL 这样的直接查询源来加载您的数据。当您这样做时,您的用户可以立即使用后端的架构更改,而无需重新创建查询。

如果您继续沿着您的路线前进,则没有完全自动的方式可以将新查询添加到您的 Power BI 桌面文件。添加新事件时,您需要编辑文件、添加新查询并确保将其添加到数据模型中。

【讨论】:

  • 是的,我感觉可能是这种情况,但值得检查。感谢您的意见!
猜你喜欢
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 2019-02-24
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多