ラボの設定手順と要件
アカウントと進行状況を保護します。このラボを実行するには、常にシークレット ブラウジング ウィンドウとラボの認証情報を使用してください。

BigQuery での連携クエリ

ラボ 30分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
このコンテンツはまだモバイル デバイス向けに最適化されていません。
快適にご利用いただくには、メールで送信されたリンクを使用して、デスクトップ パソコンでアクセスしてください。

概要

BigQuery 連携クエリ このラボでは、連携クエリの機能を扱います。連携クエリを使用すると、BigQuery 内から運用データベースを直接クエリして、リアルタイムで分析情報を取得できます。BigQuery を AlloyDB for PostgreSQL データベースに接続する方法を学びます。これにより、複雑で時間のかかる ETL パイプラインを必要とせずに、過去の分析データとライブのトランザクション データを結合できます。この実践的演習では、最新のデータ レイクハウスの重要な機能である、異種システム間でデータを統合して包括的な分析を可能にする機能について説明します。

まず、ウェブ ログ データを含むサンプル AlloyDB インスタンスに安全にリンクする外部接続を BigQuery で構成します。次に、作成した接続に、AlloyDB をクエリする権限を付与します。最後に、EXTERNAL_QUERY 関数を使用して SQL クエリを作成します。この強力な関数を使用すると、AlloyDB データベースに対してクエリを実行し、その結果を BigQuery 環境内の一時テーブルとして扱うことができます。

主なタスクは、BigQuery にネイティブに保存されている顧客データセットと、AlloyDB のライブ ウェブ ログ データを結合する単一の連携クエリを作成することです。このテクニックを習得すると、深い履歴コンテキストと即時の運用上の認識を組み合わせた、高度なリアルタイムのユースケースを実現できます。たとえば、Cymbal E-commerce はこのアプローチを使用して、「過去に最も多く購入した顧客は、ウェブサイトで何を見ていたか?」というビジネス上の疑問への答えを得ることができます。

演習内容

  • BigQuery で AlloyDB への接続を作成する
  • リンクされたサービス アカウントに IAM ロールを通じて AlloyDB へのアクセス権を付与する
  • EXTERNAL_QUERY SQL 関数を使用してクエリを作成する
  • クエリを実行して、結果を確認する

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ご自身でラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

必要なもの

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
  • ラボを完了するために十分な時間
注: 個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。 注: Pixelbook を使用している場合は、このラボをシークレット ウィンドウで実施してください。

Google Cloud コンソールにログインする

  1. このラボ セッションで使用しているブラウザタブまたはウィンドウで、[接続の詳細] パネルからユーザー名をコピーし、[Google Console を開く] ボタンをクリックします。
注: アカウントの選択を求められたら、[別のアカウントを使用] をクリックします。
  1. ユーザー名を貼り付け、プロンプトが表示されたらパスワードを入力します。
  2. [次へ] をクリックします。
  3. 利用規約に同意します。

これは、このラボの間だけ有効な一時的なアカウントです。以下の点に注意してください。

  • 復元オプションを追加しないでください。
  • 無料トライアルに登録しないでください。
  1. コンソールが開いたら、左上のナビゲーション メニューナビゲーション メニュー アイコン)をクリックしてサービスのリストを確認します。

ナビゲーション メニュー

必要な API を確認または有効にする

  1. Google Cloud コンソールの上部の検索バーに「BigQuery Connection API」と入力します。

  2. 検索結果の [BigQuery Connection API] をクリックします。

  3. API が有効になっていない場合は、[有効にする] をクリックして有効にします。

タスク 1. AlloyDB への接続を作成する

このタスクでは、BigQuery で使用する AlloyDB への新しい接続を作成します。

接続を作成する

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[BigQuery] > [Studio] に移動します。

  2. [エクスプローラ] で、[+ データを追加] をクリックします。

  3. 左側のフライアウトの [データソースのタイプ] で、[データベース] を選択します。

  4. [特徴量データソース] のフライアウトの右側にある [Google Cloud AlloyDB] のカードをクリックします。

  5. 表示されたカードの中から [BigQuery フェデレーション] をクリックします。

  6. [外部データソース] の入力画面で、次の値を使用します。

プロパティ
接続タイプ AlloyDB
接続 ID AlloyDB-weblog
ロケーション タイプ リージョン
リージョン {{{project_0.default_region | Region}}}
わかりやすい名前 空白のまま
説明 空白のまま
暗号化 デフォルト
ユーザー名 postgres
パスワード {{{user_0.password | Password}}}
データベース postgres
AlloyDB インスタンス //alloydb.googleapis.com/projects/{{{project_0.project_id | Project ID}}}/locations/{{{project_0.default_region | Region}}}/clusters/cymbal-cluster/instances/cymbal-instance
  1. [接続を作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 AlloyDB への接続を作成する

タスク 2. リンクされたサービス アカウントの IAM 権限を設定する

AlloyDB のデータにアクセスするには、接続時に自動的に作成されたサービス アカウントに AlloyDB へのアクセス権を付与する必要があります。

IAM 権限を設定する

  1. BigQuery の従来のエクスプローラ パネルで、ラボのプロジェクト ID のエントリを開きます。

  2. 次に、[接続] エントリを開きます。

  3. 先ほど作成したエントリをクリックします。接続の詳細が右側のメインパネルに表示されます。サービス アカウント ID に表示されるエントリをコピーします。たとえば、次のように表示されます: service-164632061610@gcp-sa-bigqueryconnection.iam.gserviceaccount.com

  4. ナビゲーション メニューで [IAM と管理] を選択し、フライアウト サブメニューで [IAM] を選択します。

  5. [+ アクセスを許可] をクリックします。

  6. [新しいプリンシパル] に、ステップ 3 でコピーした、リンクされたサービス アカウント ID を貼り付けます。

  7. [ロールを選択] プルダウンをクリックします。表示された [フィルタ] 領域に「AlloyDB」と入力します。[AlloyDB クライアント] が見つかるまでスクロールして選択します。

  8. [別のロールを追加] をクリックします。

  9. 新しい [ロールを選択] プルダウンをクリックします。表示された [フィルタ] 領域に「BigQuery」と入力します。[BigQuery Connection ユーザー] が表示されるまでスクロールして選択します。

  10. 画面下部にある [保存] ボックスをクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 リンクされたサービス アカウントの IAM 権限を設定する

タスク 3. BigQuery から連携クエリを実行する

このタスクでは、BigQuery の Cymbal の顧客情報と、これに対応する AlloyDB のウェブログ情報を組み合わせたクエリを実行します。

  1. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[BigQuery] > [Studio] に移動します。

  2. BigQuery の従来のエクスプローラ パネルで、ラボのプロジェクト ID のエントリを開きます。

  3. 次に、[接続] エントリを開きます。

  4. 作成した接続の右にあるその他アイコンをクリックします。クエリを選択します

  5. クエリの EXTERNAL_QUERY 部分の SELECT ステートメントを次のコードに置き換えて、クエリを更新します。クエリ全体を置き換えるのではなく、EXTERNAL_QUERY ブロック内の " " マークで囲まれた部分のみを置き換えます。

    SELECT customer_id, CAST(log_id AS VARCHAR(200)) AS log_id, timestamp, url FROM web_log LIMIT 100
  6. [実行] をクリックします。BigQuery を使用しているにもかかわらず、返されるデータは AlloyDB のものです。

  7. 次に、クエリを拡張して、BigQuery ネイティブ テーブルのデータと AlloyDB のデータを結合します。

  8. 現在のクエリを次のコードに置き換えます。

    WITH log AS ( SELECT customer_id, log_id, timestamp, url FROM EXTERNAL_QUERY("{{{project_0.project_id | Project ID}}}.{{{project_0.default_region | Region}}}.AlloyDB-weblog", "SELECT customer_id, CAST(log_id AS VARCHAR(200)) AS log_id, timestamp, url FROM web_log LIMIT 100")) SELECT log.customer_id , log.timestamp , log.url , C.* FROM customers.customer_details AS C INNER JOIN log ON C.id = log.customer_id ORDER BY C.id LIMIT 100;
  9. [実行] をクリックします。返されたデータは、AlloyDB のデータと BigQuery のデータを組み合わせたものです。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery から連携クエリを実行する

お疲れさまでした

BigQuery が AlloyDB に保存されたデータにアクセスして処理できるように、BigQuery の外部接続を設定して使用しました。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボを実行するには、シークレット モードまたはシークレット ブラウジング ウィンドウを使用することをおすすめします。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。