ブログ & リリース
2022/04/20
Apache Beam 2.38.0
Beamの新しい2.38.0リリースを発表できることを嬉しく思います。このリリースには、機能改善と新機能の両方が含まれています。このリリースの詳細については、ダウンロードページをご覧ください。
2.38.0の変更点の詳細については、詳細なリリースノートをご覧ください。
I/O
- Java SDKにプロジェクションプッシュダウンオプティマイザーを導入しました(BEAM-12976)。このオプティマイザーは現在、BigQuery Storage APIでのみ機能しますが、将来のリリースでさらに多くのI/Oが追加される予定です。オプティマイザーでバグが発生した場合は、JIRAを提出し、パイプラインオプション
--experiments=disable_projection_pushdown
を使用してオプティマイザーを無効にしてください。 - Neo4jグラフデータベース用の新しいIOが追加されました。(BEAM-1857)UNWINDステートメントを使用してノードとリレーションシップを更新したり、パラメーター付きのcypherステートメントを使用してデータを読み取ったりする機能があります。
amazon-web-services2
が機能パリティに達し、以前のamazon-web-services
およびkinesis
モジュール(Java)よりも推奨されるようになりました。これらは、次のリリースのいずれかで非推奨になる予定です(BEAM-13174)。Kinesis
への長年の書き込みサポートが追加されました(BEAM-13175)。- 設定が簡素化され、
AwsOptions
の使用を含め、すべてのIOで一貫性が保たれるようになりました(BEAM-13563、BEAM-13663、BEAM-13587)。 - さらに、
S3
ファイルシステム(BEAM-13245、BEAM-13246、BEAM-13441、BEAM-13445、BEAM-14011)、DynamoDB
IO(BEAM-13209、BEAM-13209)、SQS
IO(BEAM-13631、BEAM-13510)などに対する最近の改善と修正の長いリストがあります。
新機能/改善点
--requirements_file
を介して提供されるパイプラインの依存関係は、linux_x86_64プラットフォームのPyPIパッケージのバイナリディストリビューション(wheels)を使用してランナーにステージングされるようになりました(BEAM-4032)。ソースディストリビューションを使用する動作を復元するには、パイプラインオプション--requirements_cache_only_sources
を設定します。パッケージの送信時のステージングをスキップするには、パイプラインオプション--requirements_cache=skip
を設定します(Python)。- FlinkランナーがFlink 1.14.xをサポートするようになりました(BEAM-13106)。
- Interactive Beamが、DataprocでFlinkパイプラインをリモートで実行できるようになりました(Python)(BEAM-14071)。
破壊的な変更
- (Python)以前は、
DoFn.infer_output_types
は、element_type
がPCollectionの要素型であるIterable[element_type]
を返すことが期待されていました。現在は、element_type
を返すことが期待されています。DoFn
でinfer_output_type
をオーバーライドしている場合は注意してください(これは一般的ではありません)。BEAM-13860を参照してください。 - (
amazon-web-services2
)AwsOptions
のawsRegion
/endpoint
の型がStringからRegion
/URI
に変更されました(BEAM-13563)。
非推奨
- Beam 2.38.0は、Flink 1.11をサポートする最後のマイナーリリースになります。
- (
amazon-web-services2
)クライアントプロバイダー(withXYZClientProvider()
)とIO固有のRetryConfiguration
は非推奨となり、代わりにwithClientConfiguration()
またはAwsOptions
を使用してAWS IO /クライアントを構成してください。クライアントプロバイダーのカスタム実装は、それぞれのClientBuilderFactory
に置き換え、AwsOptions
を介して構成する必要があります(BEAM-13563)。
バグ修正
- 大きなオブジェクトのS3コピーを修正しました(Java)(BEAM-14011)
- パイプラインの正規化の二次的な動作を修正しました(Go)(BEAM-14128)
- これにより、大規模で複雑なパイプラインのジョブ送信前の前処理時間が不必要に長くなっていました。
pyarrow
のバージョン解析を修正しました(Python)(BEAM-14235)
既知の問題
- このバージョンに影響を与える未解決の問題の完全なリストを参照してください。
貢献者リスト
git shortlogによると、以下の人々が2.38.0リリースに貢献しました。すべての貢献者に感謝します!
abhijeet-lele Ahmet Altay akustov Alexander Alexander Zhuravlev Alexey Romanenko AlikRodriguez Anand Inguva andoni-guzman andreukus Andy Ye Ankur Goenka ansh0l Artur Khanin Aydar Farrakhov Aydar Zainutdinov Benjamin Gonzalez Brian Hulette brucearctor bulat safiullin bullet03 Carl Mastrangelo Chamikara Jayalath Chun Yang Daniela Martín Daniel Oliveira Danny McCormick daria.malkova David Cavazos David Huntsperger dmitryor Dmytro Sadovnychyi dpcollins-google egalpin Elias Segundo Antonio emily Etienne Chauchot Hengfeng Li Ismaël Mejía Israel Herraiz Jack McCluskey Jakub Kukul Janek Bevendorff Jeff Klukas Johan Sternby Kamil Breguła Kenneth Knowles Ke Wu Kiley Kyle Weaver laraschmidt Lara Schmidt LE QUELLEC Olivier Luka Kalinovcic Luke Cwik Marcin Kuthan masahitojp Masato Nakamura Matt Casters Melissa Pashniak Michael Li Miguel Hernandez Moritz Mack mosche nancyxu123 Nathan J Mehl Niel Markwick Ning Kang Pablo Estrada paul-tlh Pavel Avilov Rahul Iyer Reuven Lax Ritesh Ghorse Robert Bradshaw Robert Burke Ryan Skraba Ryan Thompson Sam Whittle Seth Vargo sp029619 Steven Niemitz Thiago Nunes Udi Meiri Valentyn Tymofieiev Victor vitaly.terentyev Yichi Zhang Yi Hu yirutang Zachary Houfek Zoe