学习资源
欢迎来到我们的学习资源。本页面包含一系列资源,可帮助您入门和使用 Apache Beam。如果您是初学者,可以将其视为一个引导式教程,否则您可以直接跳到您感兴趣的任何部分。
如果您想在此处看到其他材料,请告知我们 user@beam.apache.org!
入门
快速入门
- Java 快速入门 - 如何在 Java SDK 上设置和运行 WordCount 管道。
- Python 快速入门 - 如何在 Python SDK 上设置和运行 WordCount 管道。
- Go 快速入门 - 如何在 Go SDK 上设置和运行 WordCount 管道。
- Java 开发环境 - 使用 IntelliJ 和 Maven 为 Apache Beam 设置 Java 开发环境。
- Python 开发环境 - 使用 PyCharm 为 Apache Beam 设置 Python 开发环境。
学习基础知识
- WordCount - 带您逐步完成一个简单的 WordCount 管道的代码。这是一个非常基本的管道,旨在展示数据处理的最基本概念。WordCount 是数据处理的“Hello World”。
- 移动游戏 - 介绍如何考虑时间处理数据、用户定义的转换、窗口化、过滤数据、流式管道、触发器和会话分析。在您掌握 WordCount 的基础上,这是一个很好的起点。
基础
- 编程指南 - 编程指南包含有关 Apache Beam SDK 中大多数主题的更深入的信息。这些包括有关一切工作原理的描述以及代码片段,以查看如何使用每个部分。这可以用作参考指南。
- 批处理之外的世界:流式 101 - 涵盖一些基本背景信息、术语、时间域、批处理和流式处理。
- 批处理之外的世界:流式 102 - Beam 中统一的批处理和流式编程模型的导览,以及一个示例来解释许多概念。
- Apache Beam 执行模型 - 解释运行器如何执行 Apache Beam 管道。这包括为什么序列化很重要,以及运行器如何将工作并行分配到多个机器上。
常见模式
- 常见用例模式 第 1 部分 - 常见模式,例如将数据写入多个存储位置、缓慢变化的查找缓存、调用外部服务、处理错误数据以及通过 REST 端点启动作业。
- 常见用例模式 第 2 部分 - 常见模式,例如使用多个数据属性进行 GroupBy、根据共同键连接两个 PCollection、流式传输大型查找表、合并具有不同窗口长度的两个流以及对时间序列数据进行阈值检测。
- 重试策略 - 将重试策略添加到
DoFn
。
文章
数据分析
- 预测新闻社交互动 - 使用多个数据源、许多常见的模式和情感分析来获得对 TensorFlow 和 Dataflow 不同新闻文章的见解。
- 处理 IoT 数据 - IoT 传感器不断将数据流式传输到云端。了解如何处理传感器数据,这些数据可用于实时监控、警报、长期数据存储以进行分析、性能改进和模型训练。
数据迁移
- Oracle 数据库到 Google BigQuery - 使用 Dataprep 将数据从 Oracle 数据库 迁移到 BigQuery。
- Google BigQuery 到 Google Datastore - 将数据从 BigQuery 表迁移到 Datastore,无需考虑其模式。
- SAP HANA 到 Google BigQuery - 将数据从 SAP HANA 内存数据库迁移到 BigQuery。
机器学习
- 使用 RunInference API 进行机器学习 - 将 Apache Beam 与 RunInference API 配合使用,以使用机器学习 (ML) 模型对批处理和流式管道进行本地和远程推断。遵循 RunInference API 管道示例 进行图像分类、图像分割、语言建模和 MNIST 数字分类。查看 RunInference 转换 的示例。
- 机器学习预处理和预测 - 从存储在 空间数据文件 (SDF) 格式中的数据中预测分子能量。使用 TensorFlow 模型和 tf.Transform 对 Python 中的预处理进行训练。这也展示了如何在 Apache Beam 中创建批处理和流式预测管道。
- 机器学习预处理 - 找到模拟物理机器(如瓶装机或饼干机)的最佳参数设置。每个模拟机器的目标是具有与实际机器相同的输入/输出,使其成为“数字孪生”。这使用 tf.Transform 进行预处理。
高级概念
- 在 AppEngine 上运行 - 使用 Dataflow 模板从 Google AppEngine 启动管道,以及如何通过 cron 作业定期运行管道。
- 有状态处理 - 了解如何在处理输入元素时访问持久性可变状态,这允许在
DoFn
中进行副作用。如果要为每个传入元素分配唯一递增的索引(其中顺序无关紧要),则可以使用它进行任意但一致的索引分配。 - 及时和有状态处理 - 一个关于如何执行批量 RPC 调用的示例。接收调用请求后,将调用请求存储在可变状态中。一旦达到足够的请求数量或经过了一定时间,就会触发调用请求的批次发送。
- 运行外部库 - 调用使用 Apache Beam 中没有本地 SDK 的语言(如 C++)编写的外部库。
视频
- Apache Beam 入门 - 五部分视频系列,用于理解从基础到高级的概念。
- 查看更多 视频和播客
课程
书籍
使用 Apache Beam 构建大数据管道
使用 Apache Beam 构建大数据管道 由 Jan Lukavský 撰写,Packt 出版社出版。(2022 年 1 月)。Apache Beam 模型的概括描述,包括逐步构建的示例,有助于创建对该主题的牢固理解。在第一部分中,本书使用 Java SDK 解释概念,然后使用 SQL DSL 和可移植性层,重点介绍 Python SDK。本书的最后部分专门介绍更高级的主题,如使用 Splittable DoFn 的 I/O 连接器,以及运行器如何执行管道的描述。
流式系统:大型数据处理的什么、哪里、何时和如何
流式系统:大型数据处理的什么、哪里、何时和如何 由 Tyler Akidau、Slava Chernyak 和 Reuven Lax 撰写。(2018 年 8 月)。扩展自 Tyler Akidau 的热门博客文章“流式 101”和“流式 102”,本书将带您从入门级到对实时数据流处理的什么、哪里、何时和如何的细致理解。
认证
Apache Beam Quest 入门
Apache Beam 入门 此任务包含四个实验室,教你如何编写和测试 Apache Beam 管道。三个实验室使用 Java,一个实验室使用 Python。每个实验室大约需要 1.5 个小时才能完成。完成此任务后,您将获得一个徽章,可用于展示您的 Beam 专业知识。
互动实验室
Java
- 大数据文本处理管道(40 分钟) - 在 Dataflow 运行器上运行词频统计管道。
- 实时机器学习(45 分钟) - 使用美国国内航班的历史数据创建实时航班延误预测服务。
- 实时可视化地理空间数据 (60分钟) - 处理来自实时真实世界历史数据集的实时流数据,将结果存储在 BigQuery 中,并在 Data Studio 上可视化地理空间数据。
- 处理时间窗口数据 (90分钟) - 实现时间窗口聚合,以增强原始数据,从而为机器学习模型生成一致的训练和测试数据集。
Python
- Python 快速入门 (30分钟) - 在 Dataflow 运行程序上运行词频统计管道。
- 模拟历史航班 (60分钟) - 模拟美国实时历史国内航班,并将模拟数据存储在 BigQuery 中。
Beam Katas
Beam Katas 是交互式 Beam 编码练习(例如 代码 kata),可以帮助您动手学习 Apache Beam 概念和编程模型。Beam Katas 基于 JetBrains 教育产品 构建,其目标是为学习者提供一系列结构化的动手学习体验,通过解决难度逐渐增加的练习来了解 Apache Beam 及其 SDK。Beam Katas 可用于 Java 和 Python SDK。
Java
- 下载 IntelliJ Edu
- 打开 IDE 后,展开“学习和教学”菜单,然后选择“浏览课程”。
- 搜索“Beam Katas - Java”。
- 展开“高级设置”并根据需要修改“位置”和“Jdk”。
- 点击“加入”。
- 了解更多 如何使用教育产品。
Python
- 下载 PyCharm Edu
- 打开 IDE 后,展开“学习和教学”菜单,然后选择“浏览课程”。
- 搜索“Beam Katas - Python”。
- 展开“高级设置”并根据需要修改“位置”和“解释器”。
- 点击“加入”。
- 了解更多 如何使用教育产品。
代码示例
Dataflow 食谱
该 菜谱 包含 Java、Python 和 Scala(通过 Scio)的示例,提供可立即启动且独立的 Beam 管道。
Java
- 代码片段 1 - 常用的数据分析模式,例如如何使用 BigQuery、CombinePerKey 变换、删除文件中的重复行、过滤、连接 PCollection、获取 PCollection 的最大值等。
- 代码片段 2 - 关于常见任务的其他示例,例如配置 BigQuery、PubSub、为每个窗口写入一个文件等。
- 完整示例 - 端到端示例管道,例如自动补全、流式单词提取、计算词频-逆文档频率 (TF-IDF)、获取热门维基百科会话、交通最大车道流量、交通路线等。
- Pub/Sub 到 BigQuery - 一个完整的示例演示了如何在 Dataflow 上使用 Apache Beam 将 JSON 编码的 Pub/Sub 订阅消息字符串转换为结构化数据,并将该数据写入 BigQuery 表。
Python
- 代码片段 - 常用的数据分析模式,例如如何使用 BigQuery、Datastore、编码器、组合器、过滤器、自定义 PTransform 等。
- 完整示例 - 端到端示例管道,例如自动补全、获取手机游戏统计数据、计算 Julia 集、解决分布式优化任务、估计 PI、计算词频-逆文档频率 (TF-IDF)、获取热门维基百科会话等。
Beam Playground
- Beam Playground 是一个交互式环境,无需在您的环境中安装 Apache Beam 即可试用 Beam 变换和示例。您可以在 Beam Playground 中尝试可用的 Apache Beam 示例。
- 了解更多关于如何将 Apache Beam 示例/测试/kata 添加到 Beam Playground 目录的信息,请访问 此处。
API 参考
- Java API 参考 - Java SDK 的官方 API 参考。
- Python API 参考 - Python SDK 的官方 API 参考。
- Go API 参考 - Go SDK 的官方 API 参考。
反馈和建议
我们欢迎反馈和建议,您可以在 联系我们 页面中找到与社区联系的不同方式。
如果您有错误报告或想建议新功能,您可以通过 提交新问题 来告知我们。
如何贡献
我们欢迎来自所有人的贡献!要了解有关如何贡献的更多信息,请查看我们的 贡献指南。
最后更新于 2024/10/31
您是否找到了您要查找的所有内容?
所有内容是否有用且清晰?您想改变什么吗?请告诉我们!