如何使用Google App Script调用Google Big Query非遗留SQL?

时间:2016-10-04 14:14:30

标签: google-bigquery

我想根据此处的文档使用Google App Scripts触发Google Big Query查询:

https://developers.google.com/apps-script/advanced/bigquery#reference

由于我的查询使用新的DML功能,因此需要使用非遗留SQL。

这可以使用Google App Script吗?如何指定非遗留SQL?

4 个答案:

答案 0 :(得分:2)

我不相信您需要在查询文本中使用#StandardSQL。使用https://developers.google.com/apps-script/advanced/bigquery#reference上的示例代码作为参考,只需更改:

即可
var request = {
  query: 'SELECT TOP(word, 300) AS word, COUNT(*) AS word_count ' +
    'FROM publicdata:samples.shakespeare WHERE LENGTH(word) > 10;'
};

为:

var request = {
  query: 'SELECT APPROX_TOP_COUNT(word, 300) AS word, COUNT(*) AS word_count ' +
    'FROM `publicdata.samples.shakespeare` WHERE LENGTH(word) > 10;',
  useLegacySql = false
};

具体来说,您需要将useLegacySql密钥添加到请求中。

答案 1 :(得分:1)

可以在不更改代码的情况下强制执行标准SQL。 只需确保查询的第一行是

#StandardSQL

并且BigQuery会将查询的其余部分视为标准SQL

答案 2 :(得分:1)

确保您的第一行查询

#StandardSQL
select 1;

答案 3 :(得分:0)

接受的答案中的非常小更正。 (需要分号,不等于符号)

应该是

useLegacySql:false

不是

useLegacySql = false