このページでは、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 を有効にします。
詳細については、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 割り当て使用量のモニタリングと管理。