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

外部データと Iceberg テーブルのクエリ

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

概要

BigQuery で Cloud Storage の Iceberg テーブルをクエリする このラボでは、BigQuery の BigLake テーブルを使用して、Cloud Storage 内のオープンソース形式のデータを直接クエリする方法を学びます。既存の Iceberg テーブルを参照する BigLake テーブルを作成し、データを移動または複製することなく分析できる方法を習得します。この強力な機能により、オープン形式で信頼できる唯一の情報源を維持しながら、BigQuery の高性能な分析エンジンを活用できます。この実践演習は、形式や保存場所に関わらずデータを統合できる最新のデータ レイクハウスの基盤となります。

まず、BigQuery が Cloud Storage のデータに安全にアクセスできるようにする接続を作成します。次に、ウェブログの生データを含むサンプル Iceberg テーブルに対して BigLake テーブルを定義します。Iceberg は、大規模な分析データセット向けに設計されたオープン テーブル形式で、Apache Spark などの処理エンジンと組み合わせてよく利用されます。

最後に、Cloud Storage の Iceberg データと、顧客情報を収めたネイティブの BigQuery テーブルをシームレスに結合するクエリを実行します。これらの手法を習得することで、Cymbal E-commerce はさまざまなデータソースにまたがる重要なビジネス課題に答えることができます。たとえば、「最も価値の高いお客様が購入直前に最も頻繁に閲覧している商品はどれか?」といった質問に答えられます。

演習内容

  • BigQuery と BigLake を使用して、Cloud Storage の CSV ファイルから Iceberg テーブルを作成する。
  • Iceberg テーブルに対してクエリを実行し、Cloud Storage に保存されているデータを分析する。
  • BigLake テーブルをネイティブの BigQuery テーブルと結合して、データセットを統合する。
  • Cloud Storage への Cloud リソース接続を作成する。

設定と要件

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

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

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

必要なもの

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

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

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

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

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

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

ナビゲーション メニュー

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

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

  2. Marketplace の下に表示された検索結果で、[BigQuery API] をクリックします。

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

IAM 権限を確認します。

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

  2. student-xx-xxxxxxxxxxxx@qwiklabs.net のような形式のエントリを見つけます。

  3. BigQuery Connection 管理者BigQuery Connection ユーザーのロールが付与されていることを確認します。

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

このタスクでは、BigQuery が Cloud Storage 内の CSV ファイルにあるデータを外部テーブルとして読み取れるように、Cloud Storage への新しい接続を作成します。

接続の作成

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

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

  3. [データソースのタイプ] で、[ストレージ / データレイク] を選択します。

  4. [最も人気のあるデータソース] から [Google Cloud Storage] のカードをクリックします。

  5. 表示された[外部データへのアクセス] のカードの中から、[外部テーブルまたは BigLake テーブル] をクリックします。

  6. [テーブルを作成] の画面で、次の値を使用します。

プロパティ
テーブルの作成元 Google Cloud Storage
GCS バケットからファイルを選択するか、URI パターンを使用 cloud-training/OCBL462/cymbal_synthetic_weblog_data.csv
ファイル形式 CSV
ソースデータ パーティショニング オフのまま
プロジェクト {{{project_0.project_id | Project ID}}}
データセット [データセット] をクリックし、[読み込まれたデータセット] から
[cymbal_lake] を選択します。
テーブル web_log
テーブルタイプ 外部テーブル
Cloud リソース接続を使用して BigLake テーブルを作成する この項目のチェックボックスをオンにする
[接続 ID] プルダウンをクリックし、[新しい Cloud リソース接続を作成] を選択します
接続タイプ Vertex AI リモートモデル、リモート関数、BigLake、Spanner(Cloud リソース)
接続 ID gcs-bucket-{{{project_0.project_id | Project ID}}}_eds
ロケーション タイプ リージョン
リージョン {{{project_0.default_region | Region}}}
わかりやすい名前 空白のまま
説明 空白のまま
[接続を作成] をクリックします。
スキーマ、自動検出 この項目のチェックボックスをオンにする
  1. 他はすべてデフォルトのままで [テーブルを作成] をクリックします。

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

タスク 2. BigQuery を使用して Cloud Storage に Iceberg テーブルを作成してデータを読み込む

このタスクでは、作成したばかりの外部テーブルからデータを取り込み、Cloud Storage バケットに Iceberg 形式で読み込みます。

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

  2. まだ開いていない場合は、[従来のエクスプローラ] をクリックしてプロジェクトを開きます。qwiklabs-gcp-xx-xxxxxxxxxxxx のように表示されます。

  3. cymbal_lake のエントリを展開します。

  4. web_log のエントリの右側にあるその他アイコン(縦に 3 つ並んだ点)をクリックします。ポップアップ メニューから [クエリ] を選択します。

  5. 右上の [X] をクリックして、リファレンス パネルを閉じます。

  6. SQL クエリを次のコードに置き換えます。

    CREATE TABLE cymbal_lake.iceberg_web_log WITH CONNECTION `projects/{{{project_0.project_id | Project ID}}}/locations/{{{project_0.default_region | Region}}}/connections/gcs-bucket-{{{project_0.project_id | Project ID}}}_eds` OPTIONS ( table_format = 'ICEBERG', storage_uri = 'gs://gcs-bucket-{{{project_0.project_id | Project ID}}}') AS SELECT * FROM `cymbal_lake.web_log`;
  7. [実行] ボタンをクリックします。処理後に、エラー メッセージが表示されます。このウィンドウは閉じないでください。適切な権限を設定するために、ここに表示される BigQuery サービス アカウント ID が必要になります。エラー メッセージは次のように表示されます。

アクセスが拒否されました: BigQuery BigQuery: データの書き込み中に権限が拒否されました。bqcx-542604010272-n24h@gcp-sa-bigquery-condel.iam.gserviceaccount.com には、Google Cloud Storage オブジェクトに対する storage.objects.create アクセス権がありません。リソースで権限「storage.objects.create」が却下されました(または存在しない可能性があります)。gs://gcs-bucket-qwiklabs-gcp-00-333263c4c0ba/data/46d259a5-5da4-4e66-afa8-ae849d1bef50-17da16d07142b039-f-00000-of-00001.parquet に、ストレージ オブジェクト閲覧者やストレージ オブジェクト作成者などの適切な IAM ロールを通じてアクセスできることを確認してください
  1. エラー メッセージからユーザー ID をコピーします。形式は bqcx-xxxxxxxxxxxx-xxxx@gcp-sa-bigquery-condel.iam.gserviceaccount.com のようになります。

  2. Google Cloud コンソールのナビゲーション メニューナビゲーション メニュー)で、[Cloud Storage] > [バケット] に移動します。

  3. gcs-bucket- で始まるバケットの行の右端にあるその他アイコン(縦に 3 つ並んだ点)をクリックし、[アクセス権を編集] を選択します。

  4. [アクセス制御] ボックスで、[均一に切り替える] のリンクをクリックします。

  5. ポップアップで [均一] を選択します。[保存] をクリックします。

  6. [+ プリンシパルを追加] をクリックします。

  7. [新しいプリンシパル] に、BigQuery のエラー メッセージからコピーしたユーザー ID を貼り付けます。

  8. [ロールを選択 *] をクリックします。

  9. [フィルタ] に「Storage オブジェクト ユーザー」と入力し、表示されたリストから [Storage オブジェクト ユーザー] を選択して、[保存] をクリックします。

  10. BigQuery に戻り、タスク 2 のステップ 6 を繰り返して、テーブル作成クエリを再実行します。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery を使用して Cloud Storage に Iceberg テーブルを作成して読み込む

タスク 3. BigQuery から Iceberg テーブルに対してクエリを実行する

ここでは、BigQuery を使用して、Cloud Storage に作成した Iceberg テーブル内のデータにアクセスします。

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

  2. まだ開いていない場合は、[従来のエクスプローラ] 内のプロジェクトのエントリを開きます。qwiklabs-gcp-xx-xxxxxxxxxxxx のように表示されます。

  3. cymbal_lake のエントリを展開します。

  4. iceberg_web_log のエントリの右側にあるその他アイコン(縦に 3 つ並んだ点)をクリックします。ポップアップ メニューから [クエリ] を選択します。

  5. 右上の [X] をクリックして、リファレンス パネルを閉じます。

  6. SQL クエリを次のコードに置き換えます。

    SELECT * FROM cymbal_lake.iceberg_web_log LIMIT 1000;
  7. [実行] ボタンをクリックします。返されたデータは、Cloud Storage の Iceberg テーブルから取得したものです。

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

    SELECT * FROM cymbal_lake.iceberg_web_log AS WL INNER JOIN customers.customer_details AS CD ON WL.customer_id = CD.id LIMIT 1000;
  9. [実行] ボタンをクリックします。返されたデータは、Cloud Storage の Iceberg テーブルと、ネイティブの BigQuery テーブルの顧客データを結合したものです。

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

お疲れさまでした

BigQuery で外部テーブルを構成し、Cloud Storage の CSV ファイルからデータにアクセスできるようにしました。次に、Cloud Storage に Iceberg テーブルを作成し、BigQuery を使用して CSV ファイルからデータを取り込みました。最後に、Iceberg テーブルのデータとネイティブの BigQuery テーブルのデータを結合するクエリを実行しました。これは簡単な例でしたが、Cymbal の BigQuery と BigLake のレイクハウスが、データを強力なビジネスツールへと変えるパワーと柔軟性を備えていることを示しています。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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