在BigQuery API中为ViewDefinition指定SQL方言
有两个用于操作BigQuery实体的API(数据集,表,视图等)……
- 旧的(已弃用的)API:com.google.api.services.bigquery
- 新API:com.google.cloud.bigquery
在旧的API中,View类有一个布尔标志,指定关联的查询是使用传统SQL还是标准SQL。 通过以下方法访问该标志:
- getUseLegacySql
- setUseLegacySql
新API引入了ViewDefinition类,但它没有布尔标志。
如何为ViewDefinition指定SQL方言?
它似乎确实破碎了。 我刚刚在谷歌开了一个关于它的案例(请注明它!): https : //issuetracker.google.com/issues/70662064
同时,它正在使用“bq”命令行,或者使用REST(这是我采用的方法,直到Java API被修复)。
更新于15/12/21017:
谷歌只是建议我在查询开头使用“#standardSQL”表示法。 它工作正常,我比使用REST更喜欢它。
这是一个例子:
ViewDefinition tableDefinition = ViewDefinition.newBuilder("#standardSQL\n WITH A AS (select 1 as foo) SELECT * from A").build();