3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Google Cloud Platform(2)Advent Calendar 2016

Day 14

BigQueryのStandardSQL/LegacySQLの切り替え

Last updated at Posted at 2016-12-16

BigQueryのSQL文法

BigQueryのSQL文法には、以下の2つが存在しています。

  1. BigQuery独特の文法(Legacy SQL)
  2. 標準SQL(Stadard SQL)

BigQueryでは、サービス当初から、FROM句にカンマ区切りでテーブルを並べるとUNIONになる等の、かなり特殊な方言をもつ独特の文法のSQL(Legacy SQL)が使われていましたが、2016/11/30のバージョンアップで、標準SQL(Standard SQL)が正式リリースされ、従来のSQL文法および標準SQLが両方共利用可能となりました。

SQL文法の切り替え方法

2つの文法は、クエリー実行時に以下の方法で切り替えることができます。

(1) APIアクセス時に configuration.query.useLegacySql に true/false を指定する

WebUI からSQLを実行する場合は、[Show Options] の [SQL Version] の [use Legacy SQL] をチェックする(デフォルトでチェックされている)と従来の文法(Legacy SQL)で実行され、チェックを外すと標準SQL(Standard SQL)で実行されます。

bq_show_options.png

(2) 実行するSQL自体にコメントを付ける

実行するSQLの先頭に以下の2つのコメントをつけると切り替えることができます。

  • #legacySQL
  • #standardSQL

WebUI からSQLを実行する場合でも、SQLの入力エリアにこのコメントを付けた状態で記述すると、(1)で説明した[use Legacy SQL] のオプションの設定にかかわらず、コメントで指定した方の文法で実行されます。

bq_standard_sql.png

最後に

オンラインマニュアルの該当箇所に上記の説明がありますので、あわせて確認しておくほうがいいかもしれません。

[Enabling Standard SQL] (https://cloud.google.com/bigquery/docs/reference/standard-sql/enabling-standard-sql)

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?