Data Boost で連携クエリを実行する

このページでは、BigQuery から Spanner への連携クエリを実行する際に Spanner Data Boost を使用する方法について説明します。Data Boost を使用することで、連携クエリは、プロビジョニングされた Spanner インスタンス上の既存のワークロードへの影響がほぼゼロの状態で実行されます。

Spanner 連携を使用すると、データのコピーや移動を行わずに、BigQuery でクエリを実行して、Spanner に存在するデータをリアルタイムで取得できます。

Spanner 連携クエリについては、Spanner 連携クエリをご覧ください。

Data Boost については Data Boost の概要をご覧ください。

準備

Data Boost で連携クエリを実行する前に、次のタスクを完了してください。

BigQuery Connection API を有効にする

BigQuery connection API を使用すると、外部データソースへの BigQuery 接続を管理できます。

  • BigQuery connection API を有効にします。

    API を有効にする

詳細については、BigQuery Connection API をご覧ください。

Data Boost の IAM 権限をプリンシパルに付与する

プリンシパルは、Data Boost でクエリを実行してエクスポートするには、spanner.instances.getspanner.databases.useDataBoostIdentity and Access Management(IAM)権限が必要です。

Spanner Database Readerroles/spanner.databaseReader)に基づいてカスタム IAM ロールを作成し、spanner.instances.getspanner.databases.useDataBoost を追加することをおすすめします。

詳しくは、事前定義のロールをご覧ください。

Data Boost で Spanner の BigQuery 接続を作成する

BigQuery 接続を使用すると、BigQuery の外部に保存されているデータをクエリできます。BigQuery と Spanner の間の接続を確立するには、外部データ接続を作成します。その後、BigQuery データと Spanner データを結合するクエリを実行できます。

Data Boost を使用する Spanner への外部データ接続を作成するには、次のいずれかのオプションを選択します。

コンソール

  1. BigQuery ドキュメントの Create Spanner 接続を作成するに移動し、コンソールの手順に従います。

  2. [外部データソース] ペインで、[データを同時に読み込む] と [Spanner Data Boost を使用する] の両方のチェックボックスをオンにします。

bq

  1. BigQuery ドキュメントの Spanner 接続の作成に移動し、bq の手順に従います。

  2. 次の接続プロパティを true に設定します。

  • useParallelism
  • useDataBoost

次の例では、bq mk コマンドを使用して、Data Boost の 2 つの必須プロパティを持つ my_connection という名前の新しい接続を作成します。

bq mk --connection --connection_type='CLOUD_SPANNER' --location='us' \
--properties='{"database":"projects/my-project/instances/my-instance/databases/my-database", "useParallelism":true, "useDataBoost": true}' my_connection

連携クエリを実行する

Data Boost で連携クエリを実行するには、Data Boost の使用を指定する BigQuery 接続を使用します。詳細については、Data Boost で Spanner の BigQuery 接続を作成するをご覧ください。

Google Cloud コンソールの Spanner ページまたは BigQuery から開始できます。

コンソールの Spanner ページから開始する

  1. Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。

    インスタンス ページに移動

    コンソールに Spanner インスタンスのリストが表示されます。

  2. Spanner インスタンスを選択し、データベースを選択します。

  3. [データベースの概要] ページのナビゲーション メニューで、[Spanner Studio] をクリックします。

  4. [BiqQuery で表示] タブをクリックします。

  5. [BigQuery で表示] ダイアログで、接続 ID を入力します。

    これにより、新しい接続が作成されます。ID がすでに存在する場合は、エラーが発生します。

  6. ダイアログの残りの部分を入力し、[データを同時に読み込む] と [Spanner Data Boost を使用する] のチェックボックスをオンにします。

  7. [BigQuery で表示] をクリックします。

    BigQuery Studio が開きます。そこで連携クエリを入力して実行します。

    次の例では、orders という名前の Spanner データベースに連携クエリを実行し、mydataset.customers という名前の BigQuery テーブルに結果を結合します。

    SELECT c.customer_id, c.name, rq.first_order_date
    FROM mydataset.customers AS c
    LEFT OUTER JOIN EXTERNAL_QUERY(
      'my-project.us.example-db',
      '''SELECT customer_id, MIN(order_date) AS first_order_date
      FROM orders
      GROUP BY customer_id''') AS rq
      ON rq.customer_id = c.customer_id
    GROUP BY c.customer_id, c.name, rq.first_order_date;
    

BigQuery から開始する

  • ブラウザに次の URL を入力します。

    https://console.cloud.google.com/bigquery

    最後にアクセスしたプロジェクトで、BigQuery が開き、BigQuery Studio が表示されます。ここで連携クエリを実行します。

次のステップ