部落格與發佈
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 直接執行器現在已被棄用。
- 請參閱 https://github.com/apache/beam/blob/master/sdks/go/pkg/beam/runners/prism/README.md 以了解 Prism 的目標和功能。
- Python SDK 新增用於 RunInference 的 Hugging Face 模型處理器。 (#26632)
- Python SDK 新增對 RunInference 的 Hugging Face Pipelines 支援。 (#27399)
- 用於 RunInference 的 Vertex AI 模型處理器現在支援私人端點 (#27696)
- 新增了 MLTransform 轉換,支援常見的 ML 前/後處理操作 (#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 直接執行器現在已棄用。它仍然可用,以減少移轉的混亂情況。
- 可以透過覆寫 TestMain 將測試設定回直接執行器:
func TestMain(m *testing.M) { ptest.MainWithDefault(m, "direct") }
- 建議修正使用 Prism 測試時發現的問題,因為它們也可能發生在任何可攜式執行器上。
- 使用泛型註冊套件來註冊管線 DoFn,以確保管線在可攜式執行器 (如 prism) 上運作。
- 請勿依賴閉包或使用套件全域變數進行 DoFn 設定。它們在可攜式執行器上無法運作。
- 可以透過覆寫 TestMain 將測試設定回直接執行器:
錯誤修正
- 修正了 Python SDK 中的 DirectRunner 錯誤,在管線選項
direct_num_workers!=1
時,GroupByKey 取得空的 PCollection 並失敗。( #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 Sink 會錯誤處理沒有設定明確時間戳記的記錄:#28632。為避免此問題,請在寫入 Bigtable 之前,為所有記錄設定明確的時間戳記。
貢獻者清單
根據 git shortlog,以下人員為 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
Danny McCormick
Darkhan Nausharipov
Dip Patel
Dmytro Sadovnychyi
Florent Biville
Gabriel Lacroix
Hai Joey Tran
Hong Liang Teoh
Jack McCluskey
James Fricker
Jeff Kinard
Jeff Zhang
Jing
johnjcasey
jon esperanza
Josef Šimánek
Kenneth Knowles
Laksh
Liam Miller-Cushon
liferoad
magicgoody
Mahmud Ridwan
Manav Garg
Marco Vela
martin trieu
Mattie Fu
Michel Davit
Moritz Mack
mosche
Peter Sobot
Pranav Bhandari
Reeba Qureshi
Reuven Lax
Ritesh Ghorse
Robert Bradshaw
Robert Burke
RyuSA
Saba Sathya
Sam Whittle
Steven Niemitz
Steven van Rossum
Svetak Sundhar
Tony Tang
Valentyn Tymofieiev
Vitaly Terentyev
Vlado Djerek
Yichi Zhang
Yi Hu
Zechen Jiang