グローバル クエリ
グローバル クエリを使用すると、複数のリージョンに保存されているデータを参照する SQL クエリを実行できます。たとえば、us-central1 にあるテーブルと europe-central2 にあるテーブルを結合するグローバル クエリを実行できます。このドキュメントでは、プロジェクトでグローバル クエリを有効にして実行する方法について説明します。
始める前に
プロジェクトでグローバル クエリが有効になっていることを確認し、グローバル クエリを実行するために必要な権限があることを確認します。
グローバル クエリを有効にする
プロジェクトまたは組織でグローバル クエリを有効にするには、ALTER PROJECT SET OPTIONS ステートメントまたは ALTER ORGANIZATION SET OPTIONS ステートメントを使用して、デフォルト構成を変更します。
- リージョンでグローバル クエリを実行するには、クエリを実行するプロジェクトのそのリージョンで
enable_global_queries_execution引数をtrueに設定します。 - グローバル クエリでリージョンからデータをコピーできるようにするには、データを含むプロジェクトのそのリージョンで
enable_global_queries_data_access引数をtrueに設定します。 - クエリがリモートテーブルにアクセスするたびに、これらのオプションがチェックされます。
- グローバル クエリは 1 つのプロジェクトで実行し、別のプロジェクトの他のリージョンからデータを取得できます。
例: クロス プロジェクト構成
次の例は、別のプロジェクトのテーブルにアクセスするクエリを 1 つのプロジェクトで実行する方法を示しています。
us-central1 リージョンでジョブを実行しているプロジェクト query_project があり、europe-west1 リージョンにあるテーブル data_project.dataset.my_table にアクセスするクエリを実行するとします。
SET @@location='us-central1';
SELECT
*
FROM
`query_project.dataset.my_table`
JOIN `data_project.dataset.my_other_table` USING id;
このグローバル クエリを正常に実行するには、次の構成が必要です。
グローバル クエリを実行するリージョン(
us-central1)のプロジェクト(query_project)でグローバル クエリの実行を有効にする必要があります。ALTER PROJECT `
query_project` SET OPTIONS ( `region-us-central1.enable_global_queries_execution` = TRUE