【问题标题】:Power BI - How to combine multiple sources during the creation of a queryPower BI - 如何在创建查询期间合并多个源
【发布时间】:2023-02-08 22:13:07
【问题描述】:

出于多种原因,我想创建一个查询,在其中一次加载多个源,格式化它们,然后将它们组合在一起。

ChatGPT 建议使用管道运算符“|>”来格式化源并简化流程。我创建的代码看起来像这样

let
Source1 = Json.Document(Web.Contents(...))
    |> Table.FromRecords
    |> Table.RemoveColumns({"...", "..."})
    |> Table.ExpandListColumn(...)
    |> Table.ExpandRecordColumn("...", {"...", "...", "..."});

Source2 = Json.Document(Web.Contents(...))
    |> Table.FromRecords
    |> Table.RemoveColumns({"...", "..."})
    |> Table.ExpandListColumn(...)
    |> Table.ExpandRecordColumn("...", {"...", "...", "..."});

Combined = Table.Combine({Source1, Source2})

在 联合

遗憾的是,Power Query 一直告诉我第一个“|”处缺少逗号第一个运营商。如果我添加一个,它会说缺少标识符。

我知道,我可以创建多个请求,然后将它们组合在一起,但我真的想避免这种可能性,因为我的工作站非常慢,而且由于所有依赖性,它会减慢更多。

因此,如果有人有任何建议,我将非常乐意阅读。

【问题讨论】:

  • ChatGPT 刚刚弥补了这一点,它不是有效的 M。你的数据源是什么——它们实际上是 JSON 吗?在 1 个查询中有 2 个源将对性能产生零影响,除非你正在使用我怀疑你没有使用的缓冲。

标签: powerbi powerquery m


【解决方案1】:

编辑:Power Query 不支持此表示法。您将需要使用标准查询语法:

let
  Source1 = Json.Document(Web.Contents(...)),
  s11 = Table.FromRecords(Source1),
  s12 = Table.RemoveColumns(s11, {"...", "..."}),
  s13 = Table.ExpandListColumn(s12, ...),
  Source1T = Table.ExpandRecordColumn(s13, "...", {"...", "...", "..."}),
  Source2 = Json.Document(Web.Contents(...)),
  s21 = Table.FromRecords(Source2),
  s22 = Table.RemoveColumns(s21, {"...", "..."}),
  s23 = Table.ExpandListColumn(s22, ...),
  Source2T = Table.ExpandRecordColumn(s23, "...", {"...", "...", "..."}),
  Combined = Table.Combine({Source1T, Source2T})
in
  Combined

或者我想这样的事情也会起作用:

let
  Source1 = 
    let 
      s10 = Json.Document(Web.Contents(...)),
      s11 = Table.FromRecords(Source1),
      s12 = Table.RemoveColumns(s11, {"...", "..."}),
      s13 = Table.ExpandListColumn(s12, ...)
    in
      Table.ExpandRecordColumn(s13, "...", {"...", "...", "..."}),
  
  Source2 = 
    let 
      s20 = Json.Document(Web.Contents(...)),
      s21 = Table.FromRecords(Source2),
      s22 = Table.RemoveColumns(s21, {"...", "..."}),
      s23 = Table.ExpandListColumn(s22, ...)
    in
      Table.ExpandRecordColumn(s23, "...", {"...", "...", "..."}),
  
  Combined = Table.Combine({Source1T, Source2T})
in
  Combined

【讨论】:

  • 这是因为它是由 ChatGPT 组成的。该运算符在 M 中不存在
  • 这就解释了。我确实找到了一篇关于此的“这不是很好吗”类型的文章,但这显然不受支持!干杯大卫。
  • 是的,管道将是一个了不起的补充。我认为 Ben Gribaudo 写过它。 las,事实并非如此。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 1970-01-01
  • 1970-01-01
  • 2019-04-11
  • 2019-11-09
  • 2018-01-17
  • 1970-01-01
相关资源
最近更新 更多