始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
BQ Query nested event
/ 25
BQ Query average pass distance
/ 25
BQ Query analyze shot distance
/ 25
BQ Query analyze shot angle
/ 25
BQ Query nested event
/ 25
BQ Query average pass distance
/ 25
BQ Query analyze shot distance
/ 25
BQ Query analyze shot angle
/ 25
BigQuery を使用すると、より高度なデータ分析を実行できます。このラボでは、サッカーのイベントデータを分析して、データセットから実用的な分析情報を得ます。
このラボで使用するデータは、次のソースから取得されます。
このラボでは、次の方法について学びます。
こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。
このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるダイアログでお支払い方法を選択してください。 右側の [ラボの設定とアクセス] パネルには、以下が表示されます。
ラボのタイマーはページの上部に表示され、残り時間が示されます。
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。
ラボでリソースがスピンアップし、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
[ラボの設定とアクセス] パネルでもユーザー名を確認できます。
[次へ] をクリックします。
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
[ラボの設定とアクセス] パネルでもパスワードを確認できます。
[次へ] をクリックします。
その後のページはクリックして先に進みます。
しばらくすると、このタブで Google Cloud コンソールが開きます。
BigQuery コンソールには、テーブルに対してクエリを実行するためのインターフェースが用意されており、BigQuery が提供する一般公開データセットも利用できます。
[Cloud Console の BigQuery へようこそ] メッセージ ボックスが開きます。このメッセージ ボックスには、クイックスタート ガイドとリリースノートへのリンクが表示されます。
BigQuery コンソールが開きます。
テーブルが作成されると、以下のように表示されます。
このセクションでは、BigQuery インターフェースを使用してコンソールにアクセスしました。コンソールは、データセットに情報を追加する便利な方法を提供します。BigQuery では、テーブルを使用してデータを構造化された方法で表現します。
次のセクションでは、より複雑なクエリの作成について詳しく説明します。
このセクションでは、BigQuery の配列機能を使用して JOIN を使用するクエリを実行し、サッカーのイベントデータをより適切に制御できるようにします。
アシストは events テーブルの個別のスカラー フィールドとしてマークされていないため、tags フィールドの「内部」を確認する必要があります。
これは、events テーブルと tags フィールドの間で相関クロス結合を使用し(FROM 句の「,」は暗黙的な結合を表します)、イベントごとに 1 行ではなく、タグごとに 1 行を作成することで行われます。アシストに対応するタグ ID は tags2name テーブルから取得され、そのタグの出現回数がプレーヤーごとにカウントされます。また、players テーブルはプレーヤー ID からプレーヤー名を取得します。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、BigQuery でより複雑なクエリを作成しました。BigQuery で結合を実行し、配列を活用することで、データを効果的に集計できます。
次のセクションでは、BigQuery でネストと配列を使用する方法を学びます。
このセクションでは、サッカーのイベントデータでネストされたフィールドと、BigQuery の配列機能および STRUCT データ型を使用して、いくつかの興味深い質問に答えるクエリを実行します。
この質問に答えるには、events テーブルの positions フィールドを調べます。このデータを見ると、これはイベントごとに 1 つ以上の(x、y)ペアを含む繰り返しフィールドであることがわかります。このデータを提供したサッカー業界の大手データ企業 Wyscout によると、これらはイベントに関連する起点と(該当する場合)終点の位置を表しており、攻撃チームの視点から見たフィールドの割合を 0 ~ 100 のスケールで表しています。
以下のスクリーンショットは、いくつかのイベント例について、さまざまなイベントタイプに対応する位置を示しています。
データから、パスには開始位置と終了位置を表す 2 つの属性(x、y)のペアがあることがわかります。そのため、パス距離は、x 座標と y 座標の差を計算し、サッカー場の平均的な寸法(105 x 68、Wikipedia より。標準的なフィールド サイズはありません)と2 次元距離の公式を使用して推定メートルに変換することで計算できます。
最初の WITH 句のコードは、events テーブルをフィルタして合格のみを渡し、タグフィールドの「内部」を調べることで accuratePass フィールドを追加します。
パスの距離は、ORDINAL を使用して初期座標と最終座標(x, y)を抽出し、上記のコンセプトと式を適用して計算されます。最後の SELECT ステートメントは、すべてのパスと正確なパスのみの平均パス距離を含め、パスデータをチームレベルに集計します(クラブチームのみにフィルタリング)。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、BigQuery を使用して、チームごとのパス数とパスの平均距離を特定しました。これを実現するために、配列処理機能を使用して、単一のフィールドで繰り返される値を抽出し、各パスの開始点と終了点の間の距離を計算しました。
次のセクションでは、他の座標データをネスト解除して、ショット距離に関する情報を生成する方法を学びます。
このセクションでは、ショットの距離を分析するための新しいクエリを作成します。
シュートの距離は、得点できる可能性にどのような影響を与えますか?
この質問に答えるには、前のセクションと同様のプロセスを使用します。シュートについては、events テーブルの positions フィールドから(x、y)の値を使用します。
最初の WITH 句では、events テーブルをシュートのみにフィルタし、tags フィールドを「内部」から参照して isGoal フィールドを追加します。また、前のセクションでパスの距離を処理したのと同じ方法でシュートの距離を計算しますが、終了位置としてゴールマウスの中間点(100, 50)を使用します。
最後の SELECT ステートメントでは、シュート数、ゴール数、シュートに対するゴールの割合を、最も近いメートル単位に丸めて集計します。
予想どおり、近距離からのシュートはゴール率がはるかに高く、2 ~ 3 メートルでは 70% 近くの成功率ですが、8 メートルでは 25% 未満に低下し、25 メートル以上まで着実に低下しています。
データを可視化すると、理解しやすくなり、傾向を把握しやすくなります。
11 ~ 12 メートルでは成功率がわずかに上昇していますが、これは、その距離からのシュートの大部分をペナルティ キック(他のほとんどのシュートよりも成功率がはるかに高い)が占めているという事実で説明できるでしょう。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
このセクションでは、BigQuery を使用して、シュート距離とゴール成功率のビューを確立しました。この分析から、シュートの距離に基づいてゴールが決まる可能性をより深く理解できます。
次のセクションでは、同様の分析を行って、シュートの角度がシュートの成功に与える影響を確認します。
このセクションでは、前のクエリを変更して、角度がショットに与える影響を確認します。
この場合、計算される角度は、下の図(画像提供: Ian Dragulet)のように、シュートの位置とゴールラインによって作られる角度です。
角度が大きくなるのは、目標に近く、中央にいる場合です。そのため、これは上記で実行した距離の計算とある程度相関しています。シュート角度の計算では、(x, y)データに対して BigQuery の三角関数を使用します。
このクエリは、上記のシュート距離のクエリと似ていますが、最初の WITH 句でシュートの座標を抽出(角度計算で複数回必要になる場合に簡略化するため)し、2 番目の WITH 句で 余弦定理を使用したより詳細な三角関数計算でシュートの角度を取得しています。
最後の SELECT ステートメントは、ショット角度を最も近い度数に丸めて集計します。
シュート角度は一般的に、ゴール成功率と正の相関関係があるようです。20° 未満の角度では成功率が 1 桁ですが、角度が広くなるほど成功率は高くなります(60° を超えるとサンプルサイズが比較的小さくなります)。
[クエリ結果] セクションの [グラフ] をクリックし、グラフの種類として [散布図] を選択すると、以下のような全体の傾向を可視化できます。
このグラフから、シュート角度と成功率の関係は、約 100° までは比較的線形であることがわかります。また、最も広い角度はゴールに近いシュートでのみ可能であるため、この関係の一部は、上で示した距離の影響と相関しています。成功率は 35 度と 38 度でわずかに上昇しています。これは、ペナルティ キックで最も一般的なシュート角度であり(他のシュートよりもはるかに高い割合)、この範囲からのシュートの大部分を占めているためです。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次のセクションでは、このラボで学んだ内容の理解度をテストします。
このラボで扱ったトピックに関する短い問題に答えて、BigQuery の理解度をテストしてください。
スポーツ データ サイエンスの理解に一歩近づきました。BigQuery を使用して、パスの平均距離と、シュートの距離と角度が成功に与える関係を分析できました。使用されたクエリでは、相関クロス結合と BigQuery の配列関数および三角関数を使用して、ネストされたデータを調べ、要求されたとおりにデータを分析するために必要な距離と角度の計算を実行しました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2024 年 1 月 25 日
ラボの最終テスト日: 2024 年 1 月 25 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください
ラボを開始するには、この簡単な手順を完了してください。