客户案例

华盛顿国民队与 Prefect

Chris Reuter
Chris Reuter
产品营销总监

简介

当华盛顿国民队的棒球运动员们通过变得比对手更强、更优秀来为赛季进行训练时,国民队的数据工程团队也在训练数据模型,旨在让他们的组织比其他所有团队都更聪明——利用数据驱动的洞察力赢得更多的棒球比赛。这项追求需要从各种来源聚合数据,利用历史趋势对新生成的数据进行标准化,并时刻了解工程技术的进步,以获取每一个可达到的优势。他们的见解为比赛策略、高级球探、阵容构建和球员发展提供了建议。

挑战

对于国民队的数据团队来说,数据工具的用例非常丰富,涵盖了各种分析机会。通过从多个 API 获取数据,工程师们可以将赛后数据汇总,为比赛策略提供建议,例如防守站位,或者针对特定击球手的理想投球类型和投球位置。在休赛期,招聘人员利用数据进行高级球探工作,而分析师则负责阵容构建,以确定球员与现有团队的契合价值。即使在球员入队后,数据也会通过针对性地指出短板并实现基于数据的阵容调整,从而推动球员的改进训练。

考虑到从高层招聘决策到细粒度球员表现指标的数据生命周期,及时、高质量的数据至关重要。从雷达测速仪等各种来源,到 MLB Stats 等各种 API 导入数据,在数据标准化和综合方面存在相当大的挑战。此外,团队的流程需要可靠性和规律性,因为不断涌入的新数据必须同步以供分析。如果数据处理的某个环节中断,数据就无法为赛后分析做好准备,教练所需的建议也就无法及时在下一场比赛前到位。这些细微的工程细节在赛场上产生级联效应,这一切都是为了以更大的优势赢得更多的棒球比赛。

“通过每天多次可靠地导入数据,我们的分析师能够通过执行分析、撰写报告并将这些结果与我们的管理层、教练组和球员共享来利用这些数据。” - Lee Mendelowitz

随着未来变得更加数据驱动,且当前数据采集工具的格局持续增长,一个具备扩展稳定性的数据系统绝对是必要的。目前,捕获比赛数据的首要手段是基于雷达的,但最近的倡议推动了职业水平上的光学传感器系统,棒球队现在使用数据科学家来提供统计数据。这些系统需要可扩展的系统来解读和翻译数据,以便教练和经理做出比赛中的调整。

解决方案

国民队的数据团队需要一个灵活的框架来可靠地处理数据导入并满足他们的技术需求。他们需要一个工具,能够根据预定计划从包括 Rapsodo 雷达数据采集和 MLB Stats 在内的多个 API 中提取数据,并对数据管道的状态进行详细监控,以便能够轻松检测作业何时失败。对于团队来说,合适的工具可以减少调查故障所需的时间,并利用条件逻辑在失败时自动执行恢复方案。通过自动化这些过程,团队可以将更多时间投入到业务关键目标上:提高球员表现并规划球队发展方向。

虽然仍处于开发的早期阶段,但 Prefect Core 的工作流语义,结合 Prefect Cloud 的编排组件,似乎是一个满足其需求的有前途的工具。特别是,该工具可以集成到他们现有的由 Rundeck 作业组成的系统中,因此工程师可以利用 Prefect Core 的功能,通过 Rundeck 进行调度,直到他们的增量采用实现了向 Prefect Cloud 的全面过渡。团队可以继续使用遗留系统,逐步集成 Prefect 以随工具成长,并使用新的数据导入通过 Prefect 定义后续管道。这种增量采用使团队能够在不损害关键业务工作流的情况下逐步过渡。

Prefect Core 为构建数据管道(任务、流、状态、结果)提供了一套非常简洁、易用的功能,并且可以轻松建模任务之间的依赖关系。入门的学习曲线非常短,而且 Prefect Core 提供的框架比我们之前粗糙的 try/catch 语句实现要好得多。- Lee Mendelowitz

Prefect 的产品为团队提供了正确的解决方案——Prefect Core 定义清晰的组件为他们的系统提供了框架,而 Prefect Cloud 则充当了他们的指挥中心。语义管道工具的要素得到了明确定义,并为团队在不同的数据作业中实现协调提供了基础。这些作业可能差异很大,但 Cloud 充当了一个平台,用于集中监控和编排跨环境的许多不同系统。此外,新设计的管道可以轻松部署到容器化生产环境中,并注册到受版本控制的 Cloud 下,从而实现稳健的开发生命周期,确保新鲜数据始终能够送达分析师手中。

“能够使用受版本控制的代码精确定义流(Flows),这真的很棒。任务、任务依赖、任务重试、映射等功能使编写健壮的数据导入和数据管道变得容易。” - Lee Mendelowitz

随着 Prefect 在内部随着新管道的增加而被采用,分析师在无需深入软件工程知识的情况下即可获得 Prefect 功能的赋能。分析师可以自由浏览 Prefect Cloud 直观的用户界面,实时查看他们的数据填充情况。即使没有深入理解底层的容器化环境或基础设施,专注于投手分析的数据分析师也被授权运行临时数据管道,并在出现问题时向后端工程师求助。如果运行数据导入的管道在处理大量比赛时在某一点失败,这些 API 错误可以清晰地在 Cloud 日志中看到并迅速纠正,从而使分析师能够保持对分析投球类型、过垒情况以及投球垂直和水平偏移量的关注。最终,小型数据团队将更大规模的分析师团队生产化的努力取得了成功,使分析师能够触发即席参数化流(Flows),并深入了解他们预定的管道。

结果

来自多个来源的可靠数据导入可以安排在一天内多次运行,以满足组织内各团队的需求。

减少了负面工程工作,使分析师能够专注于应用他们的专业知识,而不是解决繁琐的管道问题。

Prefect Cloud 作为中央数据平台,用于监控和编排跨环境的许多不同系统的数据导入。

Prefect 可访问的 API 允许将其增量采用到现有的工作流中。

尽管生产工作流是在 RunDeck 上执行的,但数据团队仍能够缓慢地采用 Prefect 模块和工作流语义,而不会中断关键业务管道。

“我们能够轻松地掌控已转移到 Prefect 的数据流。及时清晰地查看失败、成功和中断情况,让我们能够通知相关利益方数据流的状况。” - Chris Jordan

加速了将新作业部署到 Prefect Cloud 的过程,且无需担心安全问题。

Prefect Core 为可重复的数据管道开发提供了工作流语义,其模块化组件可以通过 Prefect Cloud 的 UI 轻松解读。

Cloud UI 提供了开箱即用的监控功能,并由于 Prefect 的混合执行模型(Hybrid Execution Model)消除了安全顾虑。

“我特别欣赏用于日志记录和通知的封装器。我以前必须自己实现这些东西,而拥有一个可以直接完成这些工作的工具节省了大量时间。” - Chris Jordan

在数据采集、报告和分析之间形成了良性反馈循环。

数据管道的加速生产和细粒度监控为整个组织的数据驱动决策提供了基础设施。

“……任何在云端每天运行数据管道的团队,无论行业如何,都能从使用 Prefect Core 和 Prefect Cloud 中受益。” - Lee Mendelowitz

亲自体验一下 Prefect Cloud 吧!