BigQueryの2種類のSQLをbqコマンドでクエリ実行

BigQueryは2種類のSQLがあります。

SQL 言語の切り替え (Switching SQL dialects)  |  BigQuery  |  Google Cloud

レガシーSQL (legacy SQL)

$ bq query 'SELECT * FROM [bigquery-public-data:covid19_open_data.covid19_open_data] LIMIT 10'

$ bq query --use_legacy_sql=true 'SELECT * FROM [bigquery-public-data:covid19_open_data.covid19_open_data] LIMIT 10'
  • テーブル名にハイフンなどがある場合は [] で囲む
  • テーブル名にプロジェクト名を付ける場合は : で接続する

--use_legacy_sql はデフォルトで true。設定ファイル .bigqueryrc でデフォルトを変更することは可能。

標準SQL (standard SQL)

$ bq query --use_legacy_sql=false 'SELECT * FROM `bigquery-public-data`.`covid19_open_data`.`covid19_open_data` LIMIT 10'

または

$ bq query --use_legacy_sql=false 'SELECT * FROM `bigquery-public-data.covid19_open_data.covid19_open_data` LIMIT 10'
  • テーブル名にハイフンなどがある場合はバッククオートで囲む
  • テーブル名にプロジェクト名を付ける場合は . で接続する

以上。