BigQueryのレガシーSQLが2026年6月1日より制限付き利用可能モードへ移行


Google Cloud から「BigQuery のレガシー SQL が 2026 年 6 月 1 日より制限付き利用可能モードへ移行される」という通知メールが届いたので内容をまとめてみました。

概要

2026年6月1日以降、レガシー SQL で記述されたクエリはエラーになります

BigQuery には以下の2つのSQL方言があります。

方言状態
レガシー SQL2026年6月1日より制限付き利用可能モードへ移行
GoogleSQL(標準 SQL)2016年よりデフォルト。引き続き利用可能

影響を受けるかどうか

Google の記録をもとに、2025年11月1日以降にレガシー SQL を実行していないプロジェクトには今回の変更による影響がないと案内されています。

通知メールに「お客様による対応は不要」と記載されていれば、現時点では影響なしです。

逆に対応が必要なケースは以下のとおりです。

  • レガシー SQL 構文(#legacySQL コメントや [project:dataset.table] 形式)を使用したクエリが存在する
  • 定期実行のスケジュールクエリにレガシー SQL が含まれている
  • 外部ツールやダッシュボードがレガシー SQL を生成している

対応方法

レガシーSQLを使っているクエリはGoogleSQLに書き換えが必要です。主な構文の違いは以下のとおりです。

項目レガシー SQLGoogleSQL
テーブル参照[project:dataset.table]`project.dataset.table`
文字列結合STRING_CONCAT(a, b)CONCAT(a, b)
NULL 判定a == NULLa 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 年にデフォルトになって以降は新規での利用はほぼないはずです。もし心当たりがある場合は早めに移行しておくと安心です。