Apache Beam 2.50.0

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

2.50.0 での変更の詳細については、詳細なリリースノート を確認してください。

ハイライト

  • Spark 3.2.2 は Spark ランナーのデフォルトバージョンとして使用されます (#23804)。
  • Go SDK には Prism と呼ばれる新しいデフォルトのローカルランナーがあります (#24789)。
  • すべてのリリース済み Beam コンテナイメージは、x86 と ARM の両方の CPU アーキテクチャをサポートする マルチアーキテクチャイメージ になりました。

I/O

  • Java KafkaIO は topicPattern 経由でトピックを取得できるようになりました (#26948)
  • Cosmos DB Core SQL API からの読み取りがサポートされるようになりました (#23604)
  • HBaseIO の HBase 2.5.5 にアップグレードされました。(Java) (#27711)
  • GoogleAdsIO ソースのサポートが追加されました (Java) (#27681)

新しい機能 / 改善

  • Go SDK では、ビルドに Go 1.20 が必要になりました。(#27558)
  • Go SDK には新しいデフォルトローカルランナー Prism があります。(#24789)
  • Hugging Face モデルハンドラーが RunInference に追加されました。(#26632)
  • Hugging Face パイプラインが RunInference に追加されました。(#27399)
  • Vertex AIモデルハンドラ向けのRunInferenceでプライベートエンドポイントがサポートされるようになりました(#27696)。
  • 一般的なMLの前処理/後処理操作をサポートするMLTransformトランスフォームが追加されました(#26795)。
  • Java SDKのKryo拡張がKryo 5.5.0にアップグレードされました。これにより、バグの修正、パフォーマンスの向上、Java 14レコードのシリアル化がもたらされます。(#27635)。
  • すべてのBeamリリースされたコンテナイメージは、x86とARM CPUアーキテクチャの両方をサポートするマルチアーキテクチャイメージになっています。(#27674)。マルチアーキテクチャコンテナイメージには次のものが含まれます。
    • Go、Python、Java、TypeScript SDKコンテナのすべてのバージョン。
    • Flinkジョブサーバーコンテナのすべてのバージョン。
    • JavaとPythonの拡張サービスコンテナ。
    • トランスフォームサービスコントローラーコンテナ。
    • Spark3ジョブサーバーコンテナ。
  • スループットの向上を目的としてAWS SQSへのバッチ書き込みがサポートされるようになりました(Java、AWS 2)。(#21429)。

重大な変更

  • Python SDK:レガシーランナーサポートはDataflowから削除され、すべてのパイプラインでランナーv2を使用する必要があります。
  • Python SDK:Dataflowランナーは、パイプラインの送信時に--staging_locationからPyPIからBeam SDKをステージングしなくなります。Beamのデフォルトイメージに基づいていないカスタムコンテナイメージには、Apache Beamのインストールを含める必要があります。(#26996)。

非推奨

  • Go Directランナーは現在非推奨です。移行の混乱を軽減するために引き続き利用できます。
    • TestMainをオーバーライドすることで、テストを直接ランナーに戻すことができます。func TestMain(m *testing.M) { ptest.MainWithDefault(m, "direct") }
    • Prismを使用してテストで発生する問題を修正することをお勧めします。Prismは、ポータブルランナーでも発生する可能性があるからです。
    • パイプラインのDoFnに汎用的な登録パッケージを使用して、パイプラインがPrismなどのポータブルランナー上で機能することを確認してください。
    • DoFnの構成にクロージャやパッケージグローバルを使用しないでください。それらはポータブルランナーでは機能しません。

バグ修正

  • GroupByKeyが空のPCollectionを取得し、パイプラインオプションdirect_num_workers!=1の場合に失敗するPython SDKにおけるDirectRunnerのバグが修正されました。(#27373)。
  • 行レベルセキュリティを利用するクエリでサイズを見積もる際のBigQuery I/Oバグが修正されました(#27474)。
  • Beam Pythonコンテナは、複数のセキュリティ脆弱性を持つDebian/aomのバージョンに依存しています。: CVE-2021-30474, CVE-2021-30475, CVE-2021-30473, CVE-2020-36133, CVE-2020-36131, CVE-2020-36130, CVE-2020-36135

既知の問題

  • 長期実行Pythonパイプラインにメモリリークが発生する可能性があります: #28246
  • BigQuery IOまたはorjson依存関係を使用するPythonパイプラインにセグメンテーションフォルトが発生したり、スタックしたりすることがあります: #28318
  • Python SDKのクロス言語Bigtableシンクは、タイムスタンプを明示的に設定していないレコードを誤って処理します: #28632。この問題を避けるには、すべてのレコードに明示的なタイムスタンプを設定してからBigtableに書き込んでください。

コントリビューターリスト

gitショートログによると、次のメンバーが2.50.0リリースに貢献しました。すべてのコントリビューターに感謝します!

Abacn

acejune

AdalbertMemSQL

ahmedabu98

Ahmed Abualsaud

al97

Aleksandr Dudko

Alexey Romanenko

Anand Inguva

Andrey Devyatkin

Anton Shalkovich

ArjunGHUB

Bjorn Pedersen

BjornPrime

Brett Morgan

Bruno Volpato

Buqian Zheng

Burke Davison

Byron Ellis

bzablocki

case-k

Celeste Zeng

Chamikara Jayalath

Clay Johnson

Connor Brett

Damon

Damon Douglas

Dan Hansen

ダニー・マコーミック

ダークハン・ナウシャリポフ

ディプ・パテル

ドミトロ・サドヴニチイ

フローレント・ビビル

ガブリエル・ラクロワ

ハイ・ジョーイ・トラン

ホン・リャン・テオ

ジャック・マクラスキー

ジェームズ・フリッカー

ジェフ・キナード

ジェフ・チャン

ジン

ジョン・ジョン・ケーシー

ジョン・エスペランサ

ジョセフ・シマーネク

ケネス・ノウルズ

ラクシュ

リアム・ミラー・カション

ライフロード

マジック・グーディ

マフムド・リドワン

マナブ・ガグ

マルコ・ベラ

マーチン・トリーウ

マティー・フー

ミシェル・ダビット

モーリッツ・マック

モシ

ピーター・ソボット

プラナブ・バンダーリ

リーバ・クレシー

ルーベン・ラックス

リテッシュ・コールズ

ロバート・ブラッドショー

ロバート・バーク

リュサ

サッバ・サチヤ

サム・ホイットル

スティーブン・ニーミッツ

スティーブン・バン・ロサム

スベタク・スンダル

トニー・タン

ヴァレンティン・ティモフィーエフ

ヴィタリー・テレンティエフ

ヴラド・ジェレク

易志張

イー・フー

ゼチェン・ジアン