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

パイプラインでデータをストリーミングする - e スポーツのユースケース

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

GSP1298

Google Cloud セルフペース ラボのロゴ

概要

あなたは Cymbal Gaming のデータ エンジニアとして、開発チームとともに新しい e スポーツゲーム「Galactic Grand Prix」の開発に携わっています。このゲームでは、異なるチームに属する 2 人のプレーヤーの対戦に基づいてリアルタイムのデータが生成されます。たとえば、1 つのイベントで 2 人のプレーヤーが競い合い、勝者が決まると勝者とチームにポイントが与えられます。あなたは、このストリーミング データを処理するソリューションを構築するよう依頼されました。Dataflow パイプラインを利用して、Pub/Sub からデータを取り込み、Python コードを使用して変換し、結果を BigQuery テーブルに保存します。これらのテーブルを使用して、結果をプレーヤーとチームのダッシュボードとして可視化します。

あなたは、このようなユースケースには、Pub/Sub、Dataflow、BigQuery を使用できることを知りました。また、新しいクエリの記述に行き詰まったときに、Code Assist を使用してコードのレビューとデバッグを行えるなど、Gemini がさまざまな場面で役立つことも学びました。問題の解決に役立つ提案もしてくれます。これらの機能を使用すれば、もっと自立して取り組めるようになり、おそらくは効率も向上するはずです。しかし、何から始めればよいかわかりません。

ラボを開始すると、次の図に示すリソースが含まれる環境が提供されます。

ラボの開始時に提供されるアーキテクチャ。

ラボを終えるまでに、このアーキテクチャを使用して複数のタスクを実行します。

ラボの完了時に構築されているアーキテクチャ。

次の表で、ラボのアーキテクチャに含まれる各タスクについて詳しく説明します。

タスクの番号 詳細
1. Cloud Shell で環境変数を構成します。
2. クラウド リソースの作成:
Cloud Shell コマンドを使用して、Pub/Sub トピックとサブスクリプション、および BigQuery データセットを作成します。
3. リポジトリから Python ファイルを取得する:
このタスクでは、リポジトリから Python ファイルを取得し、プロジェクト用に構成します。
4. 合成データを生成してパイプラインを実行する:
プロジェクト用に Python ファイルを構成したら、ファイルを実行して合成データを生成し、パイプラインを開始します。esports-simulation.py ファイルは、Python を使用してゲームイベントの Pub/Sub メッセージを継続的に生成します。その後、esports-pipeline.py ファイルを実行できます。このファイルを実行すると、メッセージを取り込み、変換し、結果を BigQuery の raw_events、player score updates、team score updates の各テーブルに記録する Dataflow パイプラインが起動します。
5. BigQuery で結果を確認する:
データの使用と変換が完了し、レコードが BigQuery のテーブルに書き込まれたので、結果を確認します。各テーブルに対してクエリを実行し、結果を分析して表示します。

目標

このラボでは、次の方法について学びます。

  • 環境変数を構成する。
  • クラウド リソースを作成する。
  • リポジトリから Python ファイルを取得し、プロジェクト用に変更する。
  • 合成データを生成してパイプラインを実行する。
  • BigQuery で結果を確認する。

最後に、このラボで学んだ内容を振り返る時間が用意されています。ストリーミング データを使用して独自のユースケースにどのように対処できるか検討し、ラボジャーナルの質問に答えましょう。

設定と要件

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

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

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

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

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モード(推奨)またはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウント間の競合を防ぎ、個人アカウントに追加料金が発生しないようにすることができます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: このラボでは、受講者アカウントのみを使用してください。別の Google Cloud アカウントを使用すると、そのアカウントに料金が発生する可能性があります。

ラボを開始して Google Cloud コンソールにログインする方法

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 左側の [ラボの詳細] ペインには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] ペインでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] ペインでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスにアクセスするには、ナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。 ナビゲーション メニュー アイコンと検索フィールド

タスク 1. Cloud Shell で環境変数を構成する

このタスクでは、Cloud Shell で環境変数を構成します。

  1. Cloud Shell を開きます。

  2. このラボで Cloud Shell を初めて使用するため、使用を承認する必要があります。ポップアップ ウィンドウで [承認] をクリックして使用を承認してください。

  3. 次のコマンドを実行します。

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export REGION="{{{project_0.default_region|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket"
  4. 以下のコマンドを実行して、変数が保存されていることを確認します。

    echo ${PROJECT_ID} echo ${REGION} echo ${BUCKET_NAME}

タスク 2. クラウド リソースを作成する

このタスクでは、Cloud Shell を使用して、Pub/Sub トピックとサブスクリプション、BigQuery データセットなどのクラウド リソースを作成します。

クラウド リソースを作成する

Cloud Shell を開いたまま、次の操作を行います。

  1. 次のコマンドを実行して、Pub/Sub トピックを作成します。

    gcloud pubsub topics create esports_events_topic
  2. 次のコマンドを実行して、Pub/Sub サブスクリプションを作成します。

    gcloud pubsub subscriptions create esports_events_topic-sub --topic=esports_events_topic
  3. 次のコマンドを実行して、BigQuery データセットを作成します。

    bq --location=US mk --dataset esports_analytics

リソースの作成を確認する

  1. コンソールの上部には検索機能があります。ここに「Pub/Sub」と入力し、表示されたオプションから [Pub/Sub] をクリックします。esports_events_topic を含む Pub/Sub トピックが一覧表示されます。

  2. トピック ID である esports_events_topic をクリックします。トピックの [サブスクリプション] タブが表示され、esports_events_topic-sub サブスクリプションが一覧表示されます。これで、トピックとサブスクリプションが正常に作成されたことを確認できます。

  3. コンソールの上部にある検索機能に戻ります。ここに「BigQuery」と入力し、表示されたオプションから [BigQuery] をクリックします。[BigQuery Studio へようこそ] ページが表示され、[Cloud コンソールの BigQuery へようこそ] ポップアップが表示されます。

  4. [完了] をクリックします。

  5. [エクスプローラ] ペインで、プロジェクトを開きます。

  6. リストの下部に esports_analytics データセットが表示されます。これで、BigQuery データセットが正常に作成されたことがわかります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 クラウド リソースを作成する

タスク 3. Python ファイルを取得して構成する

次に、Cloud Shell で wget を使用して、一般公開の Cloud Storage バケットから Python ファイルを取得します。ファイルを取得したら、Cloud Shell エディタでファイルを開き、Gemini の Code Assist 機能を使用して各ファイルの内容を解説してもらいます。最後に、Cloud Shell エディタを使用して、プロジェクトと Cloud Storage バケットの詳細をファイルに落とし込んで構成します。

Python ファイルを取得する

  1. Cloud Shell に戻ります。

  2. 次のコマンドを実行して、ホーム ディレクトリに戻ります。

    cd ~
  3. esports ディレクトリを作成し、そのディレクトリに移動します。

    mkdir esports cd esports
  4. 以下の wget コマンドを使用して Python ファイルを取得します。

    wget https://storage.googleapis.com/spls/gsp1298/esports-simulation.py wget https://storage.googleapis.com/spls/gsp1298/esports-pipeline.py

    ファイルがダウンロードされたことを示す確認メッセージがターミナルに表示されます。

コードアシストを使用して Python ファイルの機能を説明する

  1. Cloud Shell で [エディタを開く] ボタンをクリックします。Cloud Shell エディタが開きます。Gemini Code Assist ペインも表示されます。

  2. チュートリアルのタブを閉じます。

  3. [エクスプローラ] ペインで、esports フォルダを開きます。Python ファイルが表示されます。

  4. esports-simulation.py ファイルを開きます。

  5. ファイルの右上にある Gemini Gemini AI の横の矢印をクリックします。

  6. [Select Gemini Code Assist Project] をクリックして、Gemini で使用するプロジェクトを選択します。リストから プロジェクト ID を選択します。

Google プロジェクト

Gemini プロジェクトを選択

  1. Gemini Code Assist ペインの下部には、プロンプトを入力する場所があり、[Gemini に相談] と表示されています。次のプロンプトを入力します。

    esports-simulation.py ファイルのコードを確認します。このコードが何をするのか説明してください。

Code Assist がコードの内容を詳しく説明してくれます。大まかに言うと、e スポーツの試合イベントをシミュレートし、それらを Google Cloud Pub/Sub トピックに公開するという流れです。

  1. 同じプロセスを使用して、このプロンプトで esports-pipeline.py ファイルが何を行うかを説明します。

    esports-pipeline.py ファイルのコードを確認します。このコードが何をするのか説明してください。

振り返りの時間

  1. 自分のデータとユースケースの中から適切なものを選び、Python を使って合成データを生成するか、アプリケーションからデータを収集して、そのデータを独自の開発ワークフローで Pub/Sub メッセージとしてトピックにパブリッシュする方法を考えてみましょう。回答をラボジャーナルに記録します。
注: Gemini は、esports-simulation.py ファイルを作成した開発者を支援するために使用されました。Gemini を使用して、Python でプロジェクト用の合成ストリーミング データを生成し、Code Assist でコードの解説を見てトラブルシューティングしてみましょう。
  1. 自分の言葉で、esports-pipeline.py ファイルが何をするのか説明してみましょう。

  2. データとユースケースを考慮して、Dataflow パイプラインを使用して Pub/Sub メッセージを使用し、その中のデータを変換して結果を BigQuery に保存する方法を考えてください。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Python ファイルを取得して構成する

プロジェクトとバケットのファイルを構成する

esports-pipeline.py ファイルを開いたままにしておきます。

  1. 11 行目付近にある PROJECT_ID 変数を実際のプロジェクト ID に設定します。これは Google Cloud コンソールの最上部に表示されます。または、以下のコードでこの行を置き換えることもできます。

    PROJECT_ID = "{{{project_0.project_id|set at lab start}}}"
  2. 18 行目付近で、GCS_TEMP_LOCATION 変数を Cloud Storage バケット名(起動時に提供されたバケット名)に設定します。結果として、行は次のようになります。

    GCS_TEMP_LOCATION = "gs://{{{project_0.project_id|set at lab start}}}-bucket/temp"
  3. 19 行目付近で、REGION 変数をラボのデフォルト リージョンに設定します。これはラボパネルの詳細で確認できます。または、次のコードで置き換えることもできます。

    REGION = "{{{project_0.default_region|set at lab start}}}"
  4. ファイルを保存します。

  5. esports-simulation.py ファイルに戻ります。

  6. 10 行目付近で、PROJECT_ID 変数を自分の Project_ID に設定します。他のファイルと同様に、行を以下のコードに置き換えるだけです。

    PROJECT_ID = "{{{project_0.project_id|set at lab start}}}" 注: プロジェクトのファイルを変更しないと、次のタスクでこれらのファイルを Cloud Shell で実行したときに、実行時にエラーが発生します。
  7. ファイルを保存します。

タスク 4. 合成データを生成してパイプラインを実行する

このタスクでは、Python ファイルを実行して合成データを生成し、パイプラインを実行します。

依存関係をインストールしてシミュレータを実行する

  1. Cloud Shell ターミナルに戻ります。

  2. ホーム ディレクトリにいることを確認します。

    cd ~
  3. esports ディレクトリに移動します。

    cd esports
  4. pip を使用して依存関係(特に Pub/Sub の Python ライブラリ)をインストールします。

    pip install google-cloud-pubsub
  5. シミュレータを実行します。このスクリプトは継続的に実行され、イベントが Pub/Sub トピックに送信されます。

    python3 esports-simulation.py

    ターミナルに、イベントがパブリッシュされていることを示す出力が表示されます。このターミナルは開いたままにしておきます。

Pub/Sub コンソールで、メッセージがトピックにパブリッシュされていることを確認する

  1. コンソールの上部にある検索機能を使用します。今回は、Pub/Sub を検索し、リストで [Pub/Sub] をクリックします。

  2. トピック ID である esports_events_topic をクリックします。トピックの [サブスクリプション] タブが表示され、esports_events_topic-sub サブスクリプションが一覧表示されます。

  3. サブスクリプション ID である esports_events_topic-sub をクリックします。

  4. esports_events_topic-sub サブスクリプションの詳細ページで、[メッセージ] タブをクリックします。「[pull] をクリックすると、メッセージが表示され、他のサブスクライバーへのメッセージ配信が一時的に延期されます。」というメッセージが表示されます。

  5. [Pull] をクリックします。ここにメッセージが表示されていれば、esports-simulation.py ファイルによって生成されたメッセージが Pub/Sub で受信されていることが確認できます。[View contents] ボタンを使用して、メッセージのいずれかを自由に確認してください。

Dataflow パイプラインの実行を試みる

  1. 新しい Cloud Shell タブを開きます。Cloud Shell ターミナルバーの + アイコンをクリックして、2 つ目のターミナルを開きます。

  2. ホーム ディレクトリにいることを確認します。

    cd ~
  3. esports ディレクトリに移動します。

    cd esports
  4. Dataflow 用の Python 依存関係(apache-beam)をインストールします。新しいターミナルで、仮想環境を設定し、必要なライブラリをインストールします。

    python3 -m venv df-env source df-env/bin/activate pip install apache-beam[gcp]
  5. Dataflow パイプラインの起動を試みます。以下のコマンドを使用して、パイプライン スクリプトを実行します。この新しいターミナルでも、PROJECT_ID 環境変数と BUCKET_NAME 環境変数が設定されていることを確認してください。

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket" python3 esports-pipeline.py \ --project=$PROJECT_ID \ --region={{{project_0.default_region | Region}}} \ --runner=DataflowRunner \ --streaming \ --temp_location=gs://$BUCKET_NAME/temp \ --job_name=esports-leaderboard-pipeline

    このコマンドは、ジョブを Dataflow サービスに送信します。ジョブが起動してデータの処理を開始するまで数分かかります。

    ただし、この時点で、以下のような警告とエラーが表示されます。

    警告: staging_location で指定された apache_beam.options.pipeline_options:Bucket で、削除(復元可能)ポリシーが有効になっています。不要なストレージ費用が発生しないようにするには、Dataflow ジョブが一時ストレージとステージング ストレージに使用するバケットで削除(復元可能)機能をオフにします。 詳しくは、https://cloud.google.com/storage/docs/use-soft-delete#remove-soft-delete-policy をご覧ください。 エラー: apache_beam.runners.dataflow.dataflow_runner:2025-07-11T14:50:27.572Z: JOB_MESSAGE_ERROR: Dataflow サービス エージェントがワーカー サービス アカウントにアクセスできません。プロジェクトに対して Dataflow API が有効になっていることを確認します。また、ワーカー サービス アカウントの場合、Dataflow サービス エージェント プリンシパルに「Cloud Dataflow サービス エージェント」ロールが付与されていることを確認します。ロールを付与するには、https://cloud.google.com/iam/docs/manage-access-service-accounts#view-access をご覧ください。[サービス アカウント] ページで、ワーカー サービス アカウントを選択し、[権限] タブを開いて、[Google 提供のロール付与を含める] を選択してロールを確認します。サービス アカウントの詳細については、https://cloud.google.com/dataflow/docs/concepts/security-and-permissions#permissions をご覧ください。

    ヘルプ 最初に、警告を見ていきましょう。

    この警告は、このラボで使用するバケット -bucket で削除(復元可能)保護機能を無効にする必要があることを示しています。無効にすることをおすすめします。無効にする手順は以下のとおりです。

    エラーについて 次に、エラーに対処しますが、これは何を意味するでしょうか。

    このエラーには 2 つの原因が考えられます。

    1. Dataflow API が有効になっていません。ただし、このラボの開始時にこの機能は有効になっています。これは、[API とサービス] に移動すると確認できます。

    2. エラーの実際の原因は、Cloud Compute のサービス アカウントに Cloud Dataflow サービス エージェントのロールを追加する必要があることです。このタスクを完了するための手順は以下のとおりです。

Cloud Storage バケットの削除(復元可能)機能を無効にする

  1. コンソールの上部にある検索機能を使用します。Cloud Storage を検索し、リストの [Cloud Storage] オプションをクリックします。[概要] ページが表示されます。

  2. [バケット] をクリックします。[バケット] ページが表示され、-bucket がリストに表示されます。

  3. -bucket をクリックします。バケットの詳細ページが表示されます。

  4. [保護] をクリックします。オプションのリストが表示され、その中に [削除(復元可能)ポリシー(データ復旧用)] が含まれています。

  5. [無効にする] をクリックします。[削除(復元可能)ポリシーを無効にする] のポップアップが表示されます。

  6. [確認] をクリックします。削除(復元可能)ポリシーが無効になりました。

Cloud Dataflow サービス エージェントのロールを追加する

  1. コンソールの上部にある検索機能を使用して、IAM に移動します。[IAM] ページが表示されます。

  2. [サービス アカウント] をクリックします。サービス アカウントのリストが表示されます。リストされているサービス アカウントの 1 つが Compute Engine 用です。Compute Engine サービスのサービス アカウントは、次のようになります。

655017706949-compute@developer.gserviceaccount.com
  1. このサービス アカウントに Cloud Dataflow サービス エージェントのロールを追加するには、まずその横にある [アクション] をクリックします。

  2. 表示されたオプションのリストから [権限を管理] をクリックします。

  3. [サービス アカウント権限の管理] で、[アクセスを管理] をクリックします。編集者ロールがすでに含まれていることを確認してください。

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

  5. [ロールを選択] オプションを使用します。[Cloud Dataflow サービス エージェント] ロールを検索して選択します。

  6. [保存] をクリックします。

  7. ロールが追加されたことを確認します。

Dataflow パイプラインを実行する

  1. Cloud Shell に戻ります。

  2. 2 つ目のターミナルタブ、つまり Dataflow パイプライン(esports-pipeline.py)を実行するためのタブにいることを確認します。

  3. 次のコマンドをもう一度実行します。

    export PROJECT_ID="{{{project_0.project_id|set at lab start}}}" export BUCKET_NAME="{{{project_0.project_id|set at lab start}}}-bucket" python3 esports-pipeline.py \ --project=$PROJECT_ID \ --region={{{project_0.default_region | Region}}} \ --runner=DataflowRunner \ --streaming \ --temp_location=gs://$BUCKET_NAME/temp \ --job_name=esports-leaderboard-pipeline

    今回は、「Dataflow Streaming Engine の自動スケーリングが有効になっています。maxNumWorkers が指定されていない場合、ワーカーは 1~100 の間でスケーリングされます。」というメッセージが表示されます。

    これで、削除(復元可能)の警告と Cloud Dataflow サービス エージェントのエラーを解決できました。

Dataflow サービスにアクセスしてパイプラインを観察する

  1. コンソールの上部にある検索機能を使用して、Dataflow サービスを検索して選択します。[ジョブ] ページが表示され、同じ名前のジョブが 2 つあります。1 つは実行中で、もう 1 つは失敗しています。

  2. 実行中のジョブをクリックします。ジョブグラフが表示されます。ページの下部に [ログ] ペインが表示されます。

  3. [ログ] ペインを展開します。[ジョブのログ] と [ワーカーログ] のタブが表示されます。

  4. [ワーカーログ] をクリックします。

  5. ここで提供されているログを確認します。raw_events、player_score_updates、team_score_updates の各テーブルが作成されたことを示すログが表示されたら、次のタスクに進みます。

    注: 作成中のテーブルのログが表示されるまでに 5~7 分かかることがあります。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 合成データを生成してパイプラインを実行する

タスク 5. BigQuery で結果を確認する

このタスクでは、SQL クエリを実行して、処理されたメッセージの結果を確認します。これを実現するために、2 つのビューを作成し、それらのビューにクエリを実行して、プレーヤーとチームのリーダーボードを表示します。また「振り返りの時間」セクションでは、リーダーボードをより見やすくするために Looker をどのように活用できるかについて検討します。

BigQuery でビューを作成する

  1. BigQuery に戻ります。

  2. エクスプローラでプロジェクトを開き、esports_analytics データセットを選択します。

  3. [+](プラス)をクリックして、新しいクエリを作成します。

  4. [クエリ] タブに次のクエリを入力します。

    -- クエリ 1: プレーヤーのリーダーボード ビューを作成する -- このビューは、各プレーヤーの最新のスコアを見つけてランク付けします。 CREATE OR REPLACE VIEW `esports_analytics.player_leaderboard_live` AS SELECT -- RANK() ウィンドウ関数を使用してリアルタイムでランクを計算する RANK() OVER (ORDER BY total_score DESC) as rank, player_id, total_score, last_updated FROM ( -- このサブクエリは、各プレーヤーの最新のスコアのみを取得する SELECT player_id, total_score, last_updated, ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY last_updated DESC) as rn FROM `esports_analytics.player_score_updates` ) WHERE rn = 1; -- クエリ 2: チーム リーダーボード ビューを作成する -- このビューは、各チームの最新のスコアを検索してランク付けする。 CREATE OR REPLACE VIEW `esports_analytics.team_leaderboard_live` AS SELECT -- RANK() ウィンドウ関数を使用してリアルタイムでランクを計算する RANK() OVER (ORDER BY total_wins DESC) as rank, team_id, total_wins, last_updated FROM ( -- このサブクエリは、各チームの最新のスコアを 1 つだけ取得する SELECT team_id, total_wins, last_updated, ROW_NUMBER() OVER (PARTITION BY team_id ORDER BY last_updated DESC) as rn FROM `esports_analytics.team_score_updates` ) WHERE rn = 1;

    このクエリは、プレーヤーのリーダーボードとチームのリーダーボードの 2 つのビューを作成します。選手とチームの最新のスコアを検索し、それに応じてランク付けします。

クエリを実行してプレーヤーのリーダーボードを表示する

  1. プラスボタンをクリックして、新しいクエリを作成します。

  2. [クエリ] タブに次のクエリを入力します。

    SELECT * FROM `esports_analytics.player_leaderboard_live` ORDER BY rank;

クエリを実行してチームのリーダーボードを表示する

  1. プラスボタンをクリックして、新しいクエリを作成します。

  2. [クエリ] タブに次のクエリを入力します。

    SELECT * FROM `esports_analytics.team_leaderboard_live` ORDER BY rank;

振り返りの時間

ジャーナルを使って、次の質問に答えてください。

  1. 現在、どの選手がリードしていますか?
  2. 現在、どのチームがリードしていますか?

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 BigQuery で結果を確認する

お疲れさまでした

Python スクリプトから生成されたシミュレートされたデータを使用して、Pub/Sub トピックとサブスクリプション、BigQuery データセット、テーブルとビュー、パイプライン自体など、e スポーツの Dataflow パイプラインをサポートする Google Cloud リソースを生成しました。また、Code Assist を使用して、これらのスクリプトのコードを説明しました。Google Cloud を日々使いこなす中で、Gemini を使用してデータ エンジニアリングのワークフローに関する知識やスキルを深めていきましょう。

次のステップと詳細情報

Google Cloud トレーニングと認定資格

Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。

マニュアルの最終更新日: 2025 年 8 月 11 日

ラボの最終テスト日: 2025 年 8 月 11 日

Copyright 2025 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

始める前に

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

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

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

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

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

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

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

ありがとうございます。

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

1 回に 1 つのラボ

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

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

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