簡介
Apache Beam 2.23.0
現(xiàn)已發(fā)布。Apache Beam
是 Google
在 2016 年 2 月份貢獻給 Apache
基金會的項目,主要目標是統(tǒng)一批處理和流處理的編程范式,為無限、亂序、web-scale
的數(shù)據(jù)集處理提供簡單靈活,功能豐富以及表達能力十分強大的 SDK
。Apache Beam
項目重點在于數(shù)據(jù)處理的編程范式和接口定義,并不涉及具體執(zhí)行引擎的實現(xiàn),Apache Beam
希望基于 Beam
開發(fā)的數(shù)據(jù)處理程序可以執(zhí)行在任意的分布式計算引擎上。
主要更新內(nèi)容:
Highlights
Twister2 Runner
(BEAM-7304)。
Python 3.8
支持(BEAM-8494)。
I/Os
- 添加了對
Snowflake reading
的支持(Java)(BEAM-9722)。
- 增加了對寫入
Splunk
的支持(Java)(BEAM-8596)。
- 添加了對
assume role
的支持(Java)(BEAM-10335)。
- 已添加一個新的可從
BigQuery
讀取的 transform:apache_beam.io.gcp.bigquery.ReadFromBigQuery
。此transform
是實驗性的。它通過將數(shù)據(jù)導出到Avro
文件并讀取這些文件來從BigQuery
讀取數(shù)據(jù)。它還支持通過導出到JSON
文件來讀取數(shù)據(jù)。與時間和日期相關的字段在行為上有很小的差異。
- 為
SnowflakeIO.write
添加dispositions
(BEAM-10343)
New Features/Improvements
更新 Snowflake JDB
C 依賴關系,并將 application=beam
添加到 connection URL
(BEAM-10383)。
Breaking Changes
- 在反序列化 JSON(Java)時,
RowJson.RowJsonDeserializer
、JsonToRow
和PubsubJsonTableProvider
現(xiàn)在默認接受“implicit nulls
”。以前的 null 只能用 explicit null 值表示,例如{"foo": "bar", "baz": null}
,而像{"foo": "bar"}
這樣的implicit null
值則會引發(fā)異?!,F(xiàn)在,兩個 JSON 字符串默認都會產(chǎn)生相同的結(jié)果。可以使用用RowJson.RowJsonDeserializer#withNullBehavior
來覆蓋此行為。
- 修復 Python 中
GroupIntoBatches
實驗轉(zhuǎn)換中的一個錯誤,該錯誤實際上是按鍵對批次進行分組的。這將更改此轉(zhuǎn)換的輸出類型(BEAM-6696)。
Deprecations
- 刪除 Gearpump runner。(BEAM-9999)
- 刪除 Apex 運行程序。(BEAM-9999)
- RedisIO.readAll() 已被棄用,將在 2 個版本中刪除,用戶必須使用 RedisIO.readKeyPatterns() 作為替代(BEAM-9747)。