このページでは、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 接続を管理できます。
-
Enable the BigQuery connection API.
詳細については、BigQuery Connection API をご覧ください。
プリンシパルに Data Boost の IAM 権限を付与する
プリンシパルが Data Boost でクエリとエクスポートを実行するには、spanner.instances.get
と spanner.databases.useDataBoost
の Identity and Access Management(IAM)権限が必要です。
Spanner Database Reader
(roles/spanner.databaseReader
)に基づいてカスタム IAM ロールを作成し、spanner.instances.get
と spanner.databases.useDataBoost
を追加することをおすすめします。
詳しくは、事前定義のロールをご覧ください。
Data Boost を使用して Spanner の BigQuery 接続を作成する
BigQuery 接続を使用すると、BigQuery の外部に保存されているデータをクエリできます。BigQuery と Spanner 間の接続を確立するには、外部データ接続を作成します。その後、BigQuery データを Spanner データと結合するクエリを実行できます。
Data Boost を使用する Spanner への外部データ接続を作成するには、次のいずれかのオプションを選択します。
コンソール
BigQuery ドキュメントの Create Spanner 接続を作成するに移動し、コンソールの手順に従います。
[外部データソース] ペインで、[データを同時に読み込む] と [Spanner Data Boost を使用する] の両方のチェックボックスをオンにします。
bq
BigQuery ドキュメントの Spanner 接続の作成に移動し、bq の手順に従います。
次の接続プロパティを
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 ページから開始する
Google Cloud コンソールで、Spanner の [インスタンス] ページに移動します。
コンソールに Spanner インスタンスのリストが表示されます。
Spanner インスタンスを選択し、データベースを選択します。
[データベースの概要] ページのナビゲーション メニューで、[Spanner Studio] をクリックします。
[BiqQuery で表示] タブをクリックします。
[BigQuery で表示] ダイアログで、接続 ID を入力します。
これにより、新しい接続が作成されます。ID がすでに存在する場合は、エラーが発生します。
ダイアログの残りの部分を入力し、[データを同時に読み込む] と [Spanner Data Boost を使用する] のチェックボックスをオンにします。
[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 が表示されます。ここで連携クエリを実行します。
次のステップ
- Data Boost について Data Boost の概要で確認する。
- アプリケーションで Data Boost を使用する
- Data Boost 使用状況をモニタリングする。
- Data Boost 割り当て使用量のモニタリングと管理。