GSP849

總覽
在本實驗室,您將編寫及執行查詢,查詢儲存在 BigQuery 資料表中的資料,進一步瞭解運動資料科學的基本概念。本實驗室的重點是說明資料庫的運作方式,並回答與下列足球主題相關的有趣問題。
本實驗室使用以下資料來源:
- Pappalardo et al., (2019) A public data set of spatio-temporal match events in soccer competitions, Nature Scientific Data 6:236, https://www.nature.com/articles/s41597-019-0247-7
- Pappalardo et al. (2019) PlayerRank: Data-driven Performance Evaluation and Player Ranking in Soccer via a Machine Learning Approach. ACM Transactions on Intelligent Systems and Technologies (TIST) 10, 5, Article 59 (September 2019), 27 pages. DOI: https://doi.org/10.1145/3343172
目標
本實驗室的學習內容包括:
- 在 BigQuery 查詢足球賽事事件資料。
- 編寫並執行查詢,彙整多個資料表的資訊。
設定和需求
瞭解以下事項後,再點選「Start Lab」按鈕
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
- 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。
如何開始研究室及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
工作 1:開啟 BigQuery
BigQuery 控制台包含資料表查詢介面,可用於查詢 BigQuery 提供的公開資料集。
- 在 Cloud 控制台的「導覽選單」中,選取「BigQuery」:
接著,畫面會顯示「歡迎使用 Cloud 控制台中的 BigQuery」訊息方塊,當中會列出快速入門導覽課程指南的連結和版本資訊。
- 點選「完成」。
BigQuery 控制台會隨即開啟。
注意:如需建立資料集和資料表的流程,請參閱 BigQuery Soccer Data Ingestion 實驗室。本實驗室的重點是學習如何查詢資訊。
建立資料表後,會出現類似以下內容的畫面:
在下一部分,您將開始學習在 BigQuery 建立查詢的基本知識。
工作 2:進球數最多的比賽
請在本部分建立查詢,彙整多個包含足球資料的資料表。您可以根據現有資訊執行一些基本分析,例如:特定聯賽中,兩隊在哪場比賽的進球總數最多。
- 在查詢編輯器,點選「+」(建立 SQL 查詢)。
- 在查詢編輯器中加入下列內容:
SELECT
date,
label,
(team1.score + team2.score) AS totalGoals
FROM
`soccer.matches` Matches
LEFT JOIN
`soccer.competitions` Competitions ON
Matches.competitionId = Competitions.wyId
WHERE
status = 'Played' AND
Competitions.name = 'Spanish first division'
ORDER BY
totalGoals DESC, date DESC
查詢會執行下列動作:
- 將 matches 資料表 (包含最終得分) 連結 competitions 資料表。
- 篩選出「西班牙甲級聯賽」的賽事。
- 依據記錄一場比賽總進球數的計算結果欄位排序。
- 按一下「執行」。
查詢結果會顯示在查詢視窗下方。
點按「Check my progress」,確認目標已達成
確定查詢已執行
在這個部分,我們使用 BigQuery 說明如何定義查詢來顯示足球資訊。這項查詢會建立篩選器,顯示特定聯賽的比賽資訊,並依據定義的欄位將資訊分類。
工作 3:傳球次數最多的球員
請在本部分建立查詢,彙整多個包含足球資料的資料表。您可以根據現有資訊執行一些基本分析,例如:計算球員的傳球總次數。
- 在查詢編輯器,點選「+」(建立 SQL 查詢)。
- 在查詢編輯器加入下列查詢:
SELECT
playerId,
(Players.firstName || ' ' || Players.lastName) AS playerName,
COUNT(id) AS numPasses
FROM
`soccer.events` Events
LEFT JOIN
`soccer.players` Players ON
Events.playerId = Players.wyId
WHERE
eventName = 'Pass'
GROUP BY
playerId, playerName
ORDER BY
numPasses DESC
LIMIT 10
這項查詢會執行下列操作:
- 將 events 資料表 (記錄每次傳球) 連結 players 資料表,根據 ID 找出球員姓名
- 將球員分組
- 計算各球員的傳球次數
- 按照傳球次數由多至少,將球員排序
- 按一下「執行」。查詢結果會顯示在查詢視窗下方。
點按「Check my progress」,確認目標已達成
確定查詢已執行
這個部分會使用 BigQuery 說明如何定義查詢,顯示球員資訊。這項查詢會建立 join,顯示 playerId 的特定資訊,並依據定義的欄位將資訊分類。
在下一部分,您將進一步瞭解現有資料集,並探索如何使用該資料集來判斷球員的罰球成功率。
工作 4:判斷罰球成功率
請在本部分建立查詢,彙整多個包含足球資料的資料表。您可以根據現有資訊執行一些分析,例如:每位球員的罰球成功率。
- 在查詢編輯器,點選「+」(建立 SQL 查詢)。
- 複製下列查詢並貼到查詢編輯器:
SELECT
playerId,
(Players.firstName || ' ' || Players.lastName) AS playerName,
COUNT(id) AS numPKAtt,
SUM(IF(101 IN UNNEST(tags.id), 1, 0)) AS numPKGoals,
SAFE_DIVIDE(
SUM(IF(101 IN UNNEST(tags.id), 1, 0)),
COUNT(id)
) AS PKSuccessRate
FROM
`soccer.events` Events
LEFT JOIN
`soccer.players` Players ON
Events.playerId = Players.wyId
WHERE
eventName = 'Free Kick' AND
subEventName = 'Penalty'
GROUP BY
playerId, playerName
HAVING
numPkAtt >= 5
ORDER BY
PKSuccessRate DESC, numPKAtt DESC
查詢會依球員彙整罰球嘗試次數和成功次數,並篩選出至少嘗試 5 次罰球的球員,然後依成功率排序。
注意:上述查詢會將 events 資料表 (本例中已篩選,只包含罰球) 連結 players 資料表,根據 ID 找出球員姓名。
事件資料表中的「tags」欄位使用 BigQuery 的陣列功能 (每個事件可儲存多個標記),因此必須取消巢狀結構,才能判斷是否成功射門 (可使用 tags2name 資料表確認標記 101 代表進球)。
- 按一下「執行」。查詢結果會顯示在查詢視窗下方。
點按「Check my progress」,確認目標已達成
確定查詢已執行
在這個部分,我們使用 BigQuery 說明如何定義查詢,顯示與罰球相關的球員資訊。這項查詢會建立 join,顯示 playerId 的特定資訊,並啟用更詳細的資訊顯示功能。
工作 5:趣味測驗
完成本實驗室介紹的主題後,請回答簡短測驗,檢驗您對 BigQuery 的瞭解程度。
恭喜!
恭喜!您已在本實驗室成功編寫及執行查詢,分析儲存在 BigQuery 資料表中的資料。您也學會如何彙整多個資料表的資訊,回答有趣的足球相關問題。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 1 月 25 日
實驗室上次測試日期:2024 年 1 月 25 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。