是否有公开的BigQuery Google库用于验证属性名称?

时间:2017-04-05 23:52:28

标签: google-bigquery

Google的BigQuery系统声明标识符必须符合正则表达式语法,特别是[A-Za-z _] [A-Za-z_0-9] *(如此处所示:https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical)。此外,虽然没有明确说明,但也可能存在长度限制。最后,标识符与现有关键字不匹配。

我想基于用户输入生成SQL查询,但我还想在提交之前正确验证查询。我可以欺骗并回溯所有属性名称,但是查询可以很简单,我更喜欢保持简单。

我很容易检查正则表达式和可能的长度限制,但检查关键字列表需要我手头有最新的关键字列表。

所以有两个问题:

  1. 我是否可以使用现有的库来检查属性名称,甚至是整个查询?

  2. 如果我没有第一项,我可以获得公开维护的关键字列表吗? (是的,是的,我可以从语言规范中自行解决这个问题,但在下次Google添加新功能时,我的回答会过时。)

  3. 我专门针对BigQuery“标准”SQL而不是“Legacy”SQL。

1 个答案:

答案 0 :(得分:2)

  

..或者甚至是整个查询?

是的,请在您的请求中使用dryRun标记。查询将不会运行,但会检查它是否在语法上正确。

https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#dryRun

enter image description here

错误还应包含查询无效的原因。