Apache Beam 2.35.0

Apache Beamの新しい2.35.0リリースを発表できることを嬉しく思います。このリリースには、改良と新機能の両方が含まれています。このリリースのダウンロードページをご覧ください。

2.35.0の変更の詳細については、詳細なリリースノートをご覧ください。

ハイライト

  • Go SDKでMultiMapサイド入力 now がサポートされるようになりました(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/O

  • JdbcIO.readWithPartitionsの範囲のデータ型をintからlongに変更しました(BEAM-13149)。これは比較的軽微な破壊的変更であり、クラフトを増やすことなく変換の使いやすさを向上させるために実装しています。この変換は比較的新しいものであるため、将来的には使いやすさを向上させるために他の破壊的変更を実装する場合があります。
  • Dataflow Runner V1およびDataflow Runner V2で、Splittable DoFns内のサイド入力がサポートされるようになりました。(BEAM-12522)。

新機能/改善点

  • Python TextIO読み込みにカスタムデリミタを追加しました(BEAM-12730)。
  • Python TextIO読み込みにescapecharパラメータを追加しました(BEAM-13189)。
  • ParquetIOでデータを読み取るときに、分割可能な読み取りがデフォルトで有効になります(BEAM-12070)。
  • GoにDoFn実行時間メトリクスを追加しました(BEAM-13001)。
  • 機能をサポートするランナーの場合、EnableSideInputCacheフックを設定することにより、Go SDKでクロスバンドルサイド入力キャッシングが利用できるようになりました(BEAM-11097)。
  • GCPライブラリBOMバージョンを24.0.0および関連する依存関係にアップグレードしました(BEAM-11205)。このBOMによって設定されたGoogle Cloudクライアントライブラリのバージョンについては、この表を参照してください。
  • AvroIOでavro-python3依存関係を削除しました。FastavroはすでにPython 3で選択されているAvroライブラリです。Boolean use_fastavroはAPI互換性のために残されていますが、効果はありません。(BEAM-13016)。
  • Go SDKでMultiMapサイド入力 now がサポートされるようになりました(BEAM-3293)。
  • リモートパッケージは、apache_beam.io.filesystemsでサポートされている場所からダウンロードできるようになりました。ファイルはStagerにダウンロードされ、ステージング場所にアップロードされます。詳細については、BEAM-11275を参照してください。

破壊的変更

  • クロス言語変換に対して新しいURN規則が採用され、既存のURNが更新されました。これにより、たとえば、異なるBeam JavaバージョンとPythonバージョンを接続するためにカスタム拡張サービスを使用する場合など、高度なユースケースが壊れる可能性があります。(BEAM-12047)。
  • Calcite 1.28.0へのアップグレードにより、Calciteダイアレクトで使用される場合、SqlTransformのSUBSTRING関数に破壊的変更が導入されました(BEAM-13099CALCITE-4427)。
  • Kinesisストリーム(AWS SDK v2)のシャードをリストするには、DescribeStreamの代わりにListShards(DescribeStreamSummary付き)が使用されます。この変更により、AWSドキュメントで述べられているように、きめ細かいIAMポリシーの場合、ListShardsおよびDescribeStreamSummary APIへの呼び出しを許可するように更新する必要があります。詳細については、「Amazon Kinesis Data Streamsへのアクセスの制御」を参照してください(BEAM-13233)。

非推奨

  • ParquetIOでデータを読み取るときに、分割不可能な読み取りは非推奨になりました(BEAM-12070)。

バグ修正

  • メイン入力ウィンドウをサイド入力ウィンドウにデフォルトで正しくマッピングします(Go)(BEAM-11087)。
  • 重複排除キー名を設定せずにDynamoDBに書き込む場合のデータ損失を修正しました(Java)(BEAM-13009)。
  • Go SDKの例には、登録済みの型と関数が now あります。(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