如何在 powerBi 的高级编辑器中编写 Snowflake SELECT 语句查询

Posted

技术标签:

【中文标题】如何在 powerBi 的高级编辑器中编写 Snowflake SELECT 语句查询【英文标题】:How to write a Snowflake SELECT statement query in Advance Editor from powerBi 【发布时间】:2021-04-17 09:55:45 【问题描述】:

我正在尝试将 power Bi 仪表板的数据源从 SQL 重新指向 Snowflake。

到目前为止,大多数表格都有效。但是,我得到一个表,在更改数据源时出现以下错误:

Expression.Error: 'Query' 不是有效的 Snowflake 选项。有效选项为:'ConnectionTimeout、CommandTimeout、CreateNavigationProperties、Role'

此特定查询(来自 PowerBi 中的高级编辑器)包含一个简单的选择,如下所示:

let
    Source =Snowflake.Databases("serverabc", "abc", [Query="SELECT DateLabel, SnapshotDate, Future, Latest#(lf)FROM Xtable#(lf)WHERE DateLabel IS NOT NULL#(lf)GROUP BY DateLabel, SnapshotDate, Future, Latest", CreateNavigationProperties=false]),
    #"Filtered Rows" = Table.SelectRows(Source, each true)
in
    #"Filtered Rows"

select 语句在 SQL 和 Snowflake 中都有效,但我在如何在 Power BI 中翻译它时也遇到了困难。

提前谢谢你

【问题讨论】:

非常感谢 Lukasz 的洞察力。我在 pbi 中引入了表格,并在 M 代码中调整了 select 语句。成功了! 很高兴听到它。 How does accepting an answer work? 更新后的连接器(2021 年 6 月)现在允许执行自定义查询。请检查我的更新答案。 【参考方案1】:

编辑:

PowerBI June

Snowflake(更新的连接器)

我们正在为 Snowflake 连接器添加高要求的自定义 SQL 支持。与 SQL 连接器一样,这将允许您输入 Snowflake 原生查询,然后在其之上构建报告。这适用于导入和直接查询模式。

https://powerbiblogscdn.azureedge.net/wp-content/uploads/2021/06/snowflake_update.png


Expression.Error:“查询”不是有效的雪花选项。有效选项为:'ConnectionTimeout、CommandTimeout、CreateNavigationProperties、Role'

看来以前的来源是支持“自定义查询”。

Sql.Database

function (server as text, database as text, optional options as nullable record) as table

Query :用于检索数据的本机 SQL 查询。如果查询产生多个结果集,则只返回第一个。


Snowflake 的 PowerBI 连接器不支持此类选项:

Snowflake.Databases

function (server as text, warehouse as text, optional options as nullable record) as table

options,可以指定控制以下选项:

ConnectionTimeout:等待来自 Snowflake 的网络响应的秒数。 CommandTimeout:等待查询执行的秒数。

有有效票证:Snowflake connector -> add SQL statement as optional。


可能的解决方法:

    在 Snowflake 中创建一个包装查询并使用它的视图

    访问表格内容并执行过滤/聚合 电源查询

【讨论】:

以上是关于如何在 powerBi 的高级编辑器中编写 Snowflake SELECT 语句查询的主要内容,如果未能解决你的问题,请参考以下文章

-调用外部Python 编辑器

-调用外部Python 编辑器

-调用外部Python 编辑器

PowerBI 解析分隔数据

PowerQuery系列文章-调用外部Python 编辑器

powerBI查询编辑器报错:Expression.SyntaxError: 应为令牌 Literal。