BigQuery レガシーSQLを使用しているジョブを洗い出す

BigQuery レガシーSQLを使用しているジョブを洗い出す

・2025年8月1日から、GoogleSQLがBigQueryのデフォルト言語になる
・レガシーSQLを引き続き使う場合、明示的に指定する必要がある
・まずは、レガシーSQLを使用しているジョブを洗い出し、対応要否の確認を

2025年8月1日から、GoogleSQLがBigQueryのデフォルト言語になることがGoogleより発表されました。

今後も、レガシーSQLを使う場合、オプション等で明示的に指定する必要があります。

レガシーSQLを使用しているケースはあまりないと思いますが、BigQueryで簡単に確認できます。

Google Cloud リファレンスより

[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.JOBS[_BY_PROJECT]

この構文を使います。

レガシーSQLを使っているジョブを洗い出す

BigQueryをひらき、クエリに上記SQLをコピー&ペーストします。

プロジェクトIDと、リージョンをコピーして、上記SQLにペーストします。

プロジェクトIDの確認方法

BigQueryの左上「Google Cloud」をクリック

ここにあります

SQLを実行する

select構文をつけて、実行します。

例 プロジェクトIDがaaa リージョンがUSの場合 

select * from `aaa.region-US.INFORMATION_SCHEMA.JOBS`;

実行すると、直近で実行したジョブ一覧が表示されます。

複数のクライアント様で確認したところ、おおむね半年程度のジョブが見れるようです。

次に、このジョブから、レガシーSQLのジョブを洗い出します。

先ほどの構文を、WHERE条件でGOOGLE_SQL以外(=レガシーSQL)に絞ります。

select * from `aaa.region-US.INFORMATION_SCHEMA.JOBS`
where query_dialect <> "GOOGLE_SQL";

以下のような結果にばれば、レガシーSQLは使っていません。

対応不要です。

同様の手順で、US以外のリージョンもチェックします。

例えば、asia-northeast1をご利用の場合、以下のように実行します。

select * from `aaa.region-asia-northeast1.INFORMATION_SCHEMA.JOBS`
where query_dialect <> "GOOGLE_SQL";

BigQueryのデータセットがUSのみの場合、チェック不要です。

Google Cloud開発お承ります

datacompanyでは、お客様のご予算・環境に応じたクラウド開発を承ります。

お困りごとがございましたら是非ご相談ください。

お問い合わせフォーム