2017-10-18 65 views
1

有兩個API操縱BigQuery的實體(數據集,表,視圖,等等。)...指定的BigQuery API

  1. 舊的(不推薦)API的ViewDefinition SQL方言:com.google.api .services.bigquery
  2. 新的API:com.google.cloud.bigquery

在舊的API,視圖類有一個布爾標誌,指定相關的查詢是否使用傳統或標準的SQL。這面旗幟是通過方法來訪問:

  • getUseLegacySql
  • setUseLegacySql

新的API引入了ViewDefinition類,但它不具有布爾標誌。

如何爲ViewDefinition指定SQL方言?

回答

1

看起來確實是壞了。 我剛剛在谷歌有關它的一個案件(請,明星!):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();