【问题标题】:Power Query Editor with Kusto Query Lanugage带有 Kusto 查询语言的 Power Query 编辑器
【发布时间】:2021-03-02 08:32:02
【问题描述】:

可以将参数从超级编辑器函数传递给超级编辑器查询吗?

这是我的查询的一部分:

let
    Source = AzureDataExplorer.Contents("mycluster", "mydatabse", "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(24h);

我想用查询编辑器参数或查询编辑器函数替换 24h。但是当我这样做时,我会收到语法错误,因为电源编辑器抱怨时间跨度的格式不正确。我不知道在上面的代码中如何格式化插入函数调用或参数。

不管怎样,上面的查询是 Kusto(即 azure 数据浏览器)查询。我试过了

时间跨度([myparam])
时间跨度([{myparam]})
时间跨度({myparam})
时间跨度([myfunction() )

没有任何作用。 :(

【问题讨论】:

    标签: powerquery azure-data-explorer


    【解决方案1】:

    我假设您的参数是 Number 类型,它表示您希望为“interval”变量设置的小时数。最容易处理的是使用字符串连接:

    Source = AzureDataExplorer.Contents("mycluster", "mydatabse", "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(" & MyIntervalParameter & "h);")
    

    另一种选择是使用 M 的 Text.Format (https://docs.microsoft.com/en-us/powerquery-m/text-format) 函数:

    Query = Text.Format(
        "let startTime = datetime(2021-02-26 00:00:00); #(lf)let interval = timespan(#[interval]h);",
        [
            interval = MyIntervalParameter
        ]),
    Source = AzureDataExplorer.Contents("mycluster", "mydatabse", Query)
    

    【讨论】:

    • 有趣的格式。我现在要试试。顺便说一句,我故意将类型设置为 (a) String 然后 (b) Any。但我看到了您在上面所做的时髦格式。现在将尝试。万分感谢。希望这有效。我会尽快回复我的发现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    相关资源
    最近更新 更多