如何在 ReDash 中设置标准 SQL BigQuery

Posted

技术标签:

【中文标题】如何在 ReDash 中设置标准 SQL BigQuery【英文标题】:How to set Standard SQL BigQuery in ReDash 【发布时间】:2016-09-16 23:53:44 【问题描述】:

我想知道如何设置 ReDash 以使用新的标准 SQL Bigquery 的查询。

我知道这可以在 BigQuery 中通过删除“旧版 SQL”中的勾号来完成。但是,此选项在 ReDash 中似乎不可用或不可见。

根据 BigQuery 的文档,我应该添加一个标志来禁用 Legacy SQL,如下所示:

bq 查询 --use_legacy_sql=false "SELECT word FROM publicdata.samples.shakespeare"

所以,我假设我需要更改 ReDash 源代码的某些部分。

有人知道 ReDash 源代码的哪些部分需要修改吗?或者,这可以用不同的方式完成?

我在 Debian 上使用 Re:dash 0.11.1+b2095。

感谢您的帮助。

【问题讨论】:

【参考方案1】:

对标准 SQL 的支持是下一个 (0.12) 版本的一部分。您已经可以升级到 0.12RC 版本,或者如果您希望等待最终版本,您可以将 BigQuery 查询运行器实现替换为新版本:

    将 big_query.py 从 master 复制到您服务器上的 /opt/redash/current/redash/query_runner/big_query.py(您的服务器上的路径可能不同)。 重新启动所有 Redash 服务。 更新您的数据源配置以使用标准 SQL。

顺便说一句,以后最好在我们的论坛上问这样的问题。偶然发现这个问题……

【讨论】:

【参考方案2】:

来自document: 您可以将 useLegacySQL 设置为 false。在同一页面上有关于java、python和php的示例代码。

您可能可以从 ReDash 的代码库中搜索并找到他们在哪里使用此 API。

【讨论】:

【参考方案3】:

还可以在大多数应用程序中强制使用标准 SQL,而无需更改代码。只需确保查询的第一行是

#StandardSQL

并且 BigQuery 会将查询的其余部分视为标准 SQL,即以下内容将起作用:

#StandardSQL
SELECT [1,2,3]

【讨论】:

以上是关于如何在 ReDash 中设置标准 SQL BigQuery的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 ClangCodeModel 插件在 QtCreator 中设置 C++ 标准?

如何在 groovy sql 中设置连接超时?

如何在Visual Studio中设置标准编码

如何在 SQL 中设置布尔值

如何在与 SQL 的连接中设置日期格式?

如何在标准 SQL 中将 Epoch 时间戳转换为日期