实验设置说明和要求
保护您的账号和进度。请务必在无痕浏览器窗口中,使用实验凭证运行此实验。

BigQuery 足球数据分析

实验 15 分钟 universal_currency_alt 5 个点数 show_chart 中级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GSP849

Google Cloud 自学实验的徽标

概述

在本实验中,您将通过编写并执行查询来查询存储在 BigQuery 表中的数据,从而掌握更多关于体育数据科学的基础知识。本实验重点演示数据库的工作原理,并解答与以下足球热点话题相关的一些有趣问题。

  • 总进球数最多。
  • 尝试传球次数最多。
  • 点球成功率最高。

本实验中使用的数据来自以下来源:

  • Pappalardo 等人,(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 等人(2019 年)PlayerRank: Data-driven Performance Evaluation and Player Ranking in Soccer via a Machine Learning Approach(PlayerRank:基于机器学习方法的足球比赛数据驱动型表现评估与球员排名)。《ACM Transactions on Intelligent Systems and Technologies》(TIST) 第 10 卷第 5 期第 59 号文章(2019 年 9 月发表),共 27 页。DOI:https://doi.org/10.1145/3343172

目标

在本实验中,您将学习如何完成以下操作:

  • 在 BigQuery 中查询足球比赛事件数据。
  • 编写并执行查询,以联接多个表中的信息。

设置和要求

点击“开始实验”按钮前的注意事项

请阅读以下说明。实验是计时的,并且您无法暂停实验。计时器在您点击开始实验后即开始计时,显示 Google Cloud 资源可供您使用多长时间。

此实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud。

为完成此实验,您需要:

  • 能够使用标准的互联网浏览器(建议使用 Chrome 浏览器)。
注意:请使用无痕模式(推荐)或无痕浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
  • 完成实验的时间 - 请注意,实验开始后无法暂停。
注意:请仅使用学生账号完成本实验。如果您使用其他 Google Cloud 账号,则可能会向该账号收取费用。

如何开始实验并登录 Google Cloud 控制台

  1. 点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:

    • “打开 Google Cloud 控制台”按钮
    • 剩余时间
    • 进行该实验时必须使用的临时凭据
    • 帮助您逐步完成本实验所需的其他信息(如果需要)
  2. 点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。

    该实验会启动资源并打开另一个标签页,显示“登录”页面。

    提示:将这些标签页安排在不同的窗口中,并排显示。

    注意:如果您看见选择账号对话框,请点击使用其他账号
  3. 如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。

    {{{user_0.username | "<用户名>"}}}

    您也可以在“实验详细信息”窗格中找到“用户名”。

  4. 点击下一步

  5. 复制下面的密码,然后将其粘贴到欢迎对话框中。

    {{{user_0.password | "<密码>"}}}

    您也可以在“实验详细信息”窗格中找到“密码”。

  6. 点击下一步

    重要提示:您必须使用实验提供的凭据。请勿使用您的 Google Cloud 账号凭据。 注意:在本实验中使用您自己的 Google Cloud 账号可能会产生额外费用。
  7. 继续在后续页面中点击以完成相应操作:

    • 接受条款及条件。
    • 由于这是临时账号,请勿添加账号恢复选项或双重验证。
    • 请勿注册免费试用。

片刻之后,系统会在此标签页中打开 Google Cloud 控制台。

注意:如需访问 Google Cloud 产品和服务,请点击导航菜单,或在搜索字段中输入服务或产品的名称。 “导航菜单”图标和“搜索”字段

任务 1. 打开 BigQuery

通过 BigQuery 控制台界面,您可以查询表(包括由 BigQuery 提供的公共数据集)。

  1. 进入 Cloud 控制台后,从导航菜单中选择 BigQuery

Cloud 控制台导航菜单,其中 BigQuery 选项处于选中状态。

您会看到欢迎在 Cloud 控制台中使用 BigQuery 消息框,其中提供了指向快速入门指南和版本说明的链接。

  1. 点击完成

BigQuery 控制台即会打开。

BigQuery 控制台,包括“编辑器”部分和“探索器”窗格。

注意:创建数据集和表的流程已在 BigQuery 足球数据注入实验中讲解过。在本实验中,重点是学习如何查询信息。

表创建完毕后,界面中显示的内容大致如下:

“探索器”窗格,其中在置顶项目列表中突出显示了 soccer 文件。

在下一部分,我们将开始学习关于在 BigQuery 中创建查询的基础知识。

任务 2. 进球最多的比赛

在本部分中,您将创建一个查询,将包含足球数据的多个表联接在一起。根据现有信息,您可以执行一些基本分析,例如特定联赛中两支球队在一场比赛中的进球总数最多是几个。

  1. 在查询编辑器中,点击“+”(创建 SQL 查询)。
  2. 将以下查询添加到查询编辑器
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 表联接起来。
  • 过滤出“Spanish first division”(西班牙甲级联赛)的比赛。
  • 按表示一场比赛中总进球数的计算字段排序。
  1. 点击运行

查询结果会显示在查询窗口下方。

“查询结果”页面,其中列出了多项结果。

点击“检查我的进度”,核查是否完成了以下目标:

检查查询是否已运行

在此部分中,我们使用 BigQuery 演示了如何定义一个显示足球信息的查询。该查询会创建一个过滤器,用于显示特定联赛的具体比赛信息,且支持按定义的字段对信息进行分类。

任务 3. 传球次数最多的球员

在本部分中,您将创建一个查询,将包含足球数据的多个表联接在一起。根据现有信息,您可以执行一些基本分析,例如球员的总传球次数。

  1. 在查询编辑器中,点击“+”(创建 SQL 查询)。
  2. 将以下查询添加到查询编辑器中:
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 获取球员姓名
  • 按球员分组
  • 计算每位球员的传球次数
  • 按传球次数排序,找出传球最多的球员
  1. 点击运行。查询结果会显示在查询窗口下方。

点击“检查我的进度”,核查是否完成了以下目标:

检查查询是否已运行

在此部分中,我们使用 BigQuery 演示了如何定义一个显示球员信息的查询。该查询会创建一个联接,用于显示有关 playerId 的具体信息,且支持按定义的字段对信息进行分类。

在下一部分中,您将详细了解现有数据集,并探索如何使用该数据集来确定球员的点球成功率。

任务 4. 确定点球成功率

在本部分中,您将创建一个查询,将包含足球数据的多个表联接在一起。根据现有信息,您可以进行一些分析,例如每位球员的点球成功率。

  1. 在查询编辑器中,点击“+”(创建 SQL 查询)。
  2. 复制以下查询并将其粘贴到查询编辑器中:
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 获取球员姓名。

events 表中的 tags 字段使用了 BigQuery 的数组功能(允许为每个事件存储多个标记),因此必须取消嵌套才能确定点球是否成功(可以使用 tags2name 表确认标记 101 代表进球)。
  1. 点击运行。查询结果会显示在查询窗口下方。

点击“检查我的进度”,核查是否完成了以下目标:

检查查询是否已运行

在本部分中,我们使用 BigQuery 演示了如何定义一个查询来显示与点球有关的球员信息。该查询会创建一个联接,用于显示有关 playerId 的具体信息,且支持显示更详细的信息。

任务 5. 随堂测验

通过完成关于本实验所涵盖主题的简短测验,检验您对 BigQuery 的掌握情况。

恭喜!

恭喜!在本实验中,您成功编写并执行了查询来分析存储在 BigQuery 表中的数据。此外,您还学习了如何联接多个表中的信息,以回答有关足球的有趣问题。

Google Cloud 培训和认证

…可帮助您充分利用 Google Cloud 技术。我们的课程会讲解各项技能与最佳实践,可帮助您迅速上手使用并继续学习更深入的知识。我们提供从基础到高级的全方位培训,并有点播、直播和虚拟三种方式选择,让您可以按照自己的日程安排学习时间。各项认证可以帮助您核实并证明您在 Google Cloud 技术方面的技能与专业知识。

上次更新手册的时间:2024 年 1 月 25 日

上次测试实验的时间:2024 年 1 月 25 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。