如何在 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的主要内容,如果未能解决你的问题,请参考以下文章