ブログ & リリース
2023/08/30
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)
- Prism は各変換を独立して実行する移植可能なランナーであり、コーデックを確実にします。
- 現時点では、機能面で Go 直接ランナーを上回っています。Go 直接ランナーは現在非推奨です。
- Prism の目標と機能については、https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/runners/prism/README.md をご覧ください。
- 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の構成にクロージャやパッケージグローバルを使用しないでください。それらはポータブルランナーでは機能しません。
- TestMainをオーバーライドすることで、テストを直接ランナーに戻すことができます。
バグ修正
- 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
ダニー・マコーミック
ダークハン・ナウシャリポフ
ディプ・パテル
ドミトロ・サドヴニチイ
フローレント・ビビル
ガブリエル・ラクロワ
ハイ・ジョーイ・トラン
ホン・リャン・テオ
ジャック・マクラスキー
ジェームズ・フリッカー
ジェフ・キナード
ジェフ・チャン
ジン
ジョン・ジョン・ケーシー
ジョン・エスペランサ
ジョセフ・シマーネク
ケネス・ノウルズ
ラクシュ
リアム・ミラー・カション
ライフロード
マジック・グーディ
マフムド・リドワン
マナブ・ガグ
マルコ・ベラ
マーチン・トリーウ
マティー・フー
ミシェル・ダビット
モーリッツ・マック
モシ
ピーター・ソボット
プラナブ・バンダーリ
リーバ・クレシー
ルーベン・ラックス
リテッシュ・コールズ
ロバート・ブラッドショー
ロバート・バーク
リュサ
サッバ・サチヤ
サム・ホイットル
スティーブン・ニーミッツ
スティーブン・バン・ロサム
スベタク・スンダル
トニー・タン
ヴァレンティン・ティモフィーエフ
ヴィタリー・テレンティエフ
ヴラド・ジェレク
易志張
イー・フー
ゼチェン・ジアン