グローバル クエリ

グローバル クエリを使用すると、複数のリージョンに保存されているデータを参照する 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;

このグローバル クエリを正常に実行するには、次の構成が必要です。

  1. グローバル クエリを実行するリージョン(us-central1)のプロジェクト(query_project)でグローバル クエリの実行を有効にする必要があります。

    ALTER PROJECT `query_project`
    SET OPTIONS (
    `region-us-central1.enable_global_queries_execution` = TRUE