Apache Beam 2.35.0

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

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

亮点

  • Go SDK 现在支持 MultiMap 侧输入 (BEAM-3293).
  • Dataflow Runner V1 和 Dataflow Runner V2 中的 Splittable DoFns 支持侧输入。(BEAM-12522).
  • 将测试套件中使用的 Log4j 版本升级到 2.17.0(仅适用于 Apache Beam 测试环境,不供最终用户使用)(BEAM-13434)。请注意,Apache Beam 版本不依赖于受 CVE-2021-44228 影响的 Log4j 2 依赖项 (log4j-core)。但是,我们敦促用户通过更新其构建配置并重新部署受影响的管道,将 Log4j 2 的直接和间接依赖项(如果有)更新到最新版本。

I/Os

  • 我们将 JdbcIO.readWithPartitions 中范围的数据类型从 int 更改为 long (BEAM-13149)。这是一个相对较小的重大更改,我们正在实施它以提高转换的可用性,而不会增加冗余代码。此转换相对较新,因此我们可能会在未来实施其他重大更改以提高其可用性。
  • Dataflow Runner V1 和 Dataflow Runner V2 中的 Splittable DoFns 支持侧输入。(BEAM-12522).

新功能/改进

  • 将自定义分隔符添加到 Python TextIO 读取 (BEAM-12730).
  • 将 escapechar 参数添加到 Python TextIO 读取 (BEAM-13189).
  • 使用 ParquetIO 读取数据时,默认情况下启用可分割读取 (BEAM-12070).
  • 将 DoFn 执行时间指标添加到 Go (BEAM-13001).
  • 跨捆绑侧输入缓存现在可用于支持该功能的运行器的 Go SDK,方法是设置 EnableSideInputCache 钩子 (BEAM-11097).
  • 将 GCP 库 BOM 版本升级到 24.0.0 和相关依赖项 (BEAM-11205)。有关此 BOM 设置的 Google Cloud 客户端库版本,请参见 此表
  • 在 AvroIO 中删除了 avro-python3 依赖项。Fastavro 已经成为我们在 Python 3 上的首选 Avro 库。布尔值 use_fastavro 保留用于 API 兼容性,但不会产生任何影响。(BEAM-13016).
  • Go SDK 现在支持 MultiMap 侧输入 (BEAM-3293).
  • 现在可以从 apache_beam.io.filesystems 支持的位置下载远程软件包。这些文件将在 Stager 上下载并上传到暂存位置。有关更多信息,请参见 BEAM-11275

重大更改

  • 为跨语言转换采用了一种新的 URN 约定,并更新了现有的 URN。这可能会破坏高级用例,例如,如果使用自定义扩展服务来连接不同的 Beam Java 和 Python 版本。(BEAM-12047).
  • 升级到 Calcite 1.28.0 在 SqlTransform 中的 SUBSTRING 函数中引入了重大更改,当与 Calcite 方言一起使用时 (BEAM-13099CALCITE-4427).
  • ListShards(使用 DescribeStreamSummary)代替 DescribeStream 用于列出 Kinesis 流中的分片(AWS SDK v2)。由于此更改,如 AWS 文档 中所述,对于细粒度的 IAM 策略,需要将它们更新以允许调用 ListShards 和 DescribeStreamSummary API。有关更多信息,请参见 控制对 Amazon Kinesis 数据流的访问 (BEAM-13233).

弃用

  • 使用 ParquetIO 读取数据时,非可分割读取已弃用 (BEAM-12070).

错误修复

  • 默认情况下将主输入窗口正确映射到侧输入窗口 (Go) (BEAM-11087).
  • 修复了在没有设置去重键名的情况下写入 DynamoDB 时的数据丢失问题 (Java) (BEAM-13009).
  • Go SDK 示例现在已注册类型和函数。(Go) (BEAM-5378)
  • 修复了在流式管道中使用 Python WriteToFiles 时的数据丢失问题 (BEAM-12950).

已知问题

  • beam-sdks-java-io-hcatalog(以及 beam-sdks-java-extensions-sql-hcatalog)的用户在添加 hive 依赖项时必须注意覆盖传递的 log4j 依赖项 (BEAM-13499).

贡献者列表

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

Ahmet Altay Alexandr Zhuravlev Alexey Romanenko AlikRodriguez Anand Inguva Andrew Pilloud Ankur Goenka Anthony Sottile Artur Khanin Aydar Farrakhov Aydar Zainutdinov Benjamin Gonzalez brachipa Brian Hulette Calvin Leung Chamikara Jayalath Chris Gray Damon Douglas Daniel Collins Daniel Oliveira daria.malkova darshan-sj David Huntsperger David Prieto Rivera Dmitrii Kuzin dpcollins-google dprieto egalpin Etienne Chauchot Eugene Nikolaiev Fernando Morales Hector Lagos Heejong Lee Ilya Kozyrev Iñigo San Jose Visiers Jack McCluskey Jiayang Wu jrhy Kenneth Knowles KevinGG kileys klmilam Kyle Weaver Luís Bianchin Luke Cwik Melissa Pashniak Michael Luckey Miguel Hernandez Milena Bukal Minbo Bae minherz Moritz Mack mosche Natalie Ning Kang Pablo Estrada Pavel Avilov Reuven Lax Ritesh Ghorse Robert Bradshaw Robert Burke Rogan Morrow Ruslan Altynnikov Sam Whittle Sergey Kalinin Slava Chernyak Svetak Sundhar Tianyang Hu Tim Robertson Tomo Suzuki tuorhador Udi Meiri vachan-shetty Valentyn Tymofieiev Yichi Zhang zhoufek