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