Apache Beam 2.33.0

我们很高兴推出 Beam 的新版本 2.33.0。此版本包含改进和新功能。请查看 下载页面,获取此版本的更多信息。

有关 2.33.0 中更改的更多信息,请查看 详细的发布说明

亮点

  • Go SDK 不再是实验性的,而是 Beam 发布过程的正式组成部分。
    • 匹配的 Go SDK 容器已发布。
    • 批处理使用已得到良好支持,并在 Flink、Spark 和 Python Portable Runner 上进行了测试。
      • SDK 测试也针对 Google Cloud Dataflow 运行,但这并不表示相互支持。
    • SDK 支持 Splittable DoFns、跨语言转换以及大多数 Beam 模型基础知识。
    • 现在使用 Go 模块进行依赖管理。
      • 这是一个重大更改,请查看重大更改以了解解决方法。
      • 更轻松地为 Go SDK 贡献代码,无需设置 GO_PATH。
      • Go 的最低版本现在是 Go v1.16
    • 发布后,请查看公告博客文章以获取完整信息。

新功能/改进

  • SchemaIO 中的投影下推 (BEAM-12609).
  • 将 Flink 运行器升级到 Flink 版本 1.13.2、1.12.5 和 1.11.4 (BEAM-10955).

重大更改

  • 自 2.30.0 版本发布以来,“BEAM-2303 [更改] 将 AvroCoder 的 reader/writer 从 Avro ReflectDatum* 类更改为 SpecificDatum* 类”(Java)。此默认行为更改已在此版本中恢复。使用 useReflectApi 设置来控制它 (BEAM-12628).

弃用

  • Python GBK 将停止支持在 Beam 2.34 中具有全局窗口和默认触发器的无界 PCollection。这可以通过 --allow_unsafe_triggers 来覆盖。(BEAM-9487).
  • 从 Beam 2.34 开始,Python GBK 将开始要求安全触发器或 --allow_unsafe_triggers 标志。(BEAM-9487).

错误修复

  • 从 BigQuery 表读取并将 TableRows 转换为 Beam Rows 时出现 UnsupportedOperationException (Java) (BEAM-12479).
  • 与 BoundedSource 的原始行为相比,SDFBoundedSourceReader 的速度要慢得多 (Python) (BEAM-12781).
  • SELECT 中未包含的 ORDER BY 列会导致崩溃 (ZetaSQL) (BEAM-12759).

已知问题

  • Spark 2.x 用户需要将 Spark 的 Jackson 运行时依赖项 (spark.jackson.version) 更新到至少 2.9.2 版本,因为 Beam 更新了其依赖项。
  • 查看 影响 此版本的所有开放问题列表。
  • Go SDK 作业在成功执行后可能会生成“Failed to deduce Step from MonitoringInfo”消息。这些消息是良性的,并不表示作业失败。这是由于尚未处理 PCollection 指标。
  • 使用 FILE_LOADS 方法的大型 Java BigQueryIO 写入将在批处理模式下失败(具体来说,当使用复制作业时)。这会导致错误消息:IllegalArgumentException: Attempting to access unknown side input。请升级到更新版本(> 2.34.0)或使用其他写入方法(例如 STORAGE_WRITE_API)。

贡献者列表

根据 git shortlog,以下人员为 2.33.0 版本做出了贡献。感谢所有贡献者!

Ahmet Altay, Alex Amato, Alexey Romanenko, Andreas Bergmeier, Andres Rodriguez, Andrew Pilloud, Andy Xu, Ankur Goenka, anthonyqzhu, Benjamin Gonzalez, Bhupinder Sindhwani, Chamikara Jayalath, Claire McGinty, Daniel Mateus Pires, Daniel Oliveira, David Huntsperger, Dylan Hercher, emily, Emily Ye, Etienne Chauchot, Eugene Nikolaiev, Heejong Lee, iindyk, Iñigo San Jose Visiers, Ismaël Mejía, Jack McCluskey, Jan Lukavský, Jeff Ruane, Jeremy Lewi, KevinGG, Ke Wu, Kyle Weaver, lostluck, Luke Cwik, Marwan Tammam, masahitojp, Mehdi Drissi, Minbo Bae, Ning Kang, Pablo Estrada, Pascal Gillet, Pawas Chhokra, Reuven Lax, Ritesh Ghorse, Robert Bradshaw, Robert Burke, Rodrigo Benenson, Ryan Thompson, Saksham Gupta, Sam Rohde, Sam Whittle, Sayat, Sayat Satybaldiyev, Siyuan Chen, Slava Chernyak, Steve Niemitz, Steven Niemitz, tvalentyn, Tyson Hamilton, Udi Meiri, vachan-shetty, Venkatramani Rajgopal, Yichi Zhang, zhoufek