BigQueryのレガシーSQLが2026年6月1日より制限付き利用可能モードへ移行
Google Cloud から「BigQuery のレガシー SQL が 2026 年 6 月 1 日より制限付き利用可能モードへ移行される」という通知メールが届いたので内容をまとめてみました。
概要
2026年6月1日以降、レガシー SQL で記述されたクエリはエラーになります。
BigQuery には以下の2つのSQL方言があります。
| 方言 | 状態 |
|---|---|
| レガシー SQL | 2026年6月1日より制限付き利用可能モードへ移行 |
| GoogleSQL(標準 SQL) | 2016年よりデフォルト。引き続き利用可能 |
影響を受けるかどうか
Google の記録をもとに、2025年11月1日以降にレガシー SQL を実行していないプロジェクトには今回の変更による影響がないと案内されています。
通知メールに「お客様による対応は不要」と記載されていれば、現時点では影響なしです。
逆に対応が必要なケースは以下のとおりです。
- レガシー SQL 構文(
#legacySQLコメントや[project:dataset.table]形式)を使用したクエリが存在する - 定期実行のスケジュールクエリにレガシー SQL が含まれている
- 外部ツールやダッシュボードがレガシー SQL を生成している
対応方法
レガシーSQLを使っているクエリはGoogleSQLに書き換えが必要です。主な構文の違いは以下のとおりです。
| 項目 | レガシー SQL | GoogleSQL |
|---|---|---|
| テーブル参照 | [project:dataset.table] | `project.dataset.table` |
| 文字列結合 | STRING_CONCAT(a, b) | CONCAT(a, b) |
| NULL 判定 | a == NULL | a IS NULL |
| 日付関数 | DATE_ADD(d, 1, 'DAY') | DATE_ADD(d, INTERVAL 1 DAY) |
公式の移行ガイドも参照してください。
使用状況の確認方法
自分のプロジェクトでレガシーSQLが使われているか確認するには、INFORMATION_SCHEMAを使います。
SELECT
creation_time,
query,
user_email
FROM
`region-asia-northeast1`.INFORMATION_SCHEMA.JOBS
WHERE
creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 90 DAY)
AND query LIKE '%#legacySql%'
ORDER BY
creation_time DESC
使用している環境に対しては「対応不要」の通知でしたが、こういった移行通知を受け取るたびに、自分のプロジェクトで何が動いているか把握する良い機会だと感じます。
レガシーSQLはBigQueryの旧来の方言で、GoogleSQL(標準SQL)が 2016 年にデフォルトになって以降は新規での利用はほぼないはずです。もし心当たりがある場合は早めに移行しておくと安心です。