Apache Beam 2.21.0

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

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

I/Os

  • Python:已弃用模块 apache_beam.io.gcp.datastore.v1 已被移除,因为它使用的客户端已过时且不支持 Python 3 (BEAM-9529)。请将您的代码迁移到使用 apache_beam.io.gcp.datastore.v1new。查看更新后的 datastore_wordcount 获取示例用法。
  • Python SDK:为 Google Cloud Spanner 变换添加了集成测试和更新的批量写入功能 (BEAM-8949)。

新功能/改进

  • Python SDK 现在将使用 Python 3 类型注解作为管道类型提示。(#10717)

    如果您怀疑此功能导致您的管道失败,请在创建管道之前调用 apache_beam.typehints.disable_type_annotations() 来完全禁用它,并使用 @apache_beam.typehints.no_annotations 装饰特定函数(例如 process())以禁用它。

    有关更多详细信息,请查看 确保 Python 类型安全 和 Python SDK 类型更改 博客文章

  • Java SDK:引入 Beam Schema 中选项的概念。这些选项为字段和模式添加了额外的上下文。这将替换当前仅存在于 FieldType 中的 Beam 元数据,选项在字段和行模式中可用。模式选项是完全类型的,可以包含复杂的行。注意:支持模式感知功能仍在实验阶段。 (BEAM-9035)

  • Java SDK:protobuf 扩展完全支持模式感知,还包括 protobuf 选项到 beam 模式选项的转换。注意:支持模式感知功能仍在实验阶段。 (BEAM-9044)

  • 添加了通过 Avro 文件加载写入 BigQuery 的功能(Python)(BEAM-8841)

    默认情况下,文件加载将使用 JSON 完成,但可以指定 temp_file_format 参数来使用 AVRO 执行文件导出。基于 AVRO 的文件加载通过将 Python 类型导出为 Avro 类型来工作,因此要切换到基于 AVRO 的加载,您需要将数据类型从 JSON 兼容类型(字符串类型日期和时间戳、数字值作为字符串)更改为写入 Avro 的 Python 本机类型(Python 的日期、时间类型、十进制等)。有关更多信息,请查看 https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-avro#avro_conversions

  • 添加了 Java SDK 与 Google Cloud AI VideoIntelligence 服务的集成 (BEAM-9147)

  • 添加了 Java SDK 与 Google Cloud AI 自然语言处理 API 的集成 (BEAM-9634)

  • 引入了 docker-pull-licenses 标签。当设置 docker-pull-licenses 时,第三方依赖项的许可证/通知将添加到 docker 映像中。这些文件将添加到 /opt/apache/beam/third_party_licenses/。默认情况下,不会将任何许可证/通知添加到 docker 映像中。(BEAM-9136)

重大更改

  • Dataflow 运行器现在需要设置 --region 选项,除非在环境中设置了默认值 (BEAM-9199)。有关更多详细信息,请查看 此处
  • HBaseIO.ReadAll 现在需要 HBaseIO.Read 对象的 PCollection 而不是 HBaseQuery 对象 (BEAM-9279)。
  • 已删除 ProcessContext.updateWatermark,改为使用 WatermarkEstimator (BEAM-9430)。
  • 已禁用 Row 对象 PCollection 的编码器推断 (BEAM-9569)。
  • Go SDK docker 映像不再发布,直到另行通知。

弃用

  • Java SDK:Beam Schema FieldType.getMetadata 现已弃用,并被 Beam Schema Options 替代,将在版本 2.23.0 中删除。 (BEAM-9704)
  • Dataflow 运行器中的 --zone 选项现已弃用。请改用 --worker_zone。 (BEAM-9716)

贡献者列表

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

Aaron Meihm, Adrian Eka, Ahmet Altay, AldairCoronel, Alex Van Boxel, Alexey Romanenko, Andrew Crites, Andrew Pilloud, Ankur Goenka, Badrul (Taki) Chowdhury, Bartok Jozsef, Boyuan Zhang, Brian Hulette, brucearctor, bumblebee-coming, Chad Dombrova, Chamikara Jayalath, Chie Hayashida, Chris Gorgolewski, Chuck Yang, Colm O hEigeartaigh, Curtis “Fjord” Hawthorne, Daniel Mills, Daniel Oliveira, David Yan, Elias Djurfeldt, Emiliano Capoccia, Etienne Chauchot, Fernando Diaz, Filipe Regadas, Gleb Kanterov, Hai Lu, Hannah Jiang, Harch Vardhan, Heejong Lee, Henry Suryawirawan, Hk-tang, Ismaël Mejía, Jacoby, Jan Lukavský, Jeroen Van Goey, jfarr, Jozef Vilcek, Kai Jiang, Kamil Wasilewski, Kenneth Knowles, KevinGG, Kyle Weaver, Kyoungha Min, Luke Cwik, Maximilian Michels, Michal Walenia, Ning Kang, Pablo Estrada, paul fisher, Piotr Szuberski, Reuven Lax, Robert Bradshaw, Robert Burke, Rose Nguyen, Rui Wang, Sam Rohde, Sam Whittle, Spoorti Kundargi, Steve Koonce, sunjincheng121, Ted Yun, Tesio, Thomas Weise, Tomo Suzuki, Udi Meiri, Valentyn Tymofieiev, Vasu Nori, Yichi Zhang, yoshiki.obata, Yueyang Qiu