Apache Beam 2.25.0

我們很高興推出 Apache Beam 的新版本 2.25.0。此版本包含改進和新功能。請參閱下載頁面以取得此版本。

有關 2.25.0 變更的更多資訊,請查看詳細的發佈說明

重點

  • Splittable DoFn 現在是基於 Java 的執行器 (Direct、Flink、Jet、Samza、Twister2) 執行 Read 轉換的預設選項。Read 轉換的預期輸出不變。使用者可以使用 --experiments=use_deprecated_read 選擇退出。Apache Beam 社群正在尋求對此變更的回饋,因為社群計畫將此變更設為永久性且無法選擇退出。如果您遇到需要選擇退出的問題,請傳送電子郵件至 user@beam.apache.org,並在主旨行中明確註明 BEAM-10670 以及您需要選擇退出的原因。(Java) (BEAM-10670)

I/O

  • 新增了對 Java 的 KinesisIO 的跨語言支援,現在可在 Python 模組 apache_beam.io.kinesis 中使用 (BEAM-10138BEAM-10137)。
  • 更新了 SnowflakeIO 的 Snowflake JDBC 依賴項 (BEAM-10864)
  • 新增了對 Java 的 SnowflakeIO.Write 的跨語言支援,現在可在 Python 模組 apache_beam.io.snowflake 中使用 (BEAM-9898)。
  • 在 Java 的 ElasticsearchIO#Write 中新增了刪除函數。現在,Java 的 ElasticsearchIO 可以使用 withIsDeleteFn 函數選擇性地刪除文件 (BEAM-5757)。
  • Java SDK:新增了 InfluxDB 的新 IO 連接器 - InfluxDbIO (BEAM-2546)。

新功能/改進

  • 新增了在 ReadFromBigQuery 的 JSON 解碼器中對可重複欄位的支援。(Python) (BEAM-10524)
  • 為 Python SDK 新增了選擇加入的、以效能為導向的執行階段類型檢查系統 (BEAM-10549)。更多詳細資訊將在即將發佈的部落格文章中說明。
  • 新增了在使用類型化的 PCollections 的 PTransforms 上對 Python 3 類型註釋的支援 (BEAM-10258)。更多詳細資訊將在即將發佈的部落格文章中說明。
  • 改進了互動式 Beam API,現在記錄串流作業會啟動長時間執行的背景記錄作業。執行 ib.show() 或 ib.collect() 會從記錄中取樣 (BEAM-10603)。
  • 在互動式 Beam 中,ib.show() 和 ib.collect() 現在具有「n」和「duration」作為參數。這些表示只讀取最多「n」個元素和最多從記錄中讀取「duration」秒的資料 (BEAM-10603)。
  • 初步預覽Dataframes 支援。另請參閱 apache_beam/examples/wordcount_dataframe.py 的範例
  • 修正了 Python SDK 中 @ptransform_fn 修飾器上的類型提示支援。 (BEAM-4091) 為了保持向後相容性,預設未啟用此功能;請使用 --type_check_additional=ptransform_fn 標誌啟用。它可能會在 Beam 的未來版本中預設啟用。

重大變更

  • 已移除 Python 2 和 Python 3.5 支援 (BEAM-10644BEAM-9372)。
  • 允許使用 Pandas 1.x。仍然可以使用舊版本的 Pandas,但可能沒有經過完善的測試。

棄用

  • Python 轉換 ReadFromSnowflake 已從 apache_beam.io.external.snowflake 移至 apache_beam.io.snowflake。先前的路徑將在未來版本中移除。

已知問題

  • Dataflow 串流計時器在捆綁包中較早設定時,不再嚴格按照時間順序執行,因為對 BEAM-8543 的修復引入了更嚴重的錯誤,並且已回滾。
  • 預設壓縮程式變更會破壞 Dataflow Python 串流作業更新相容性。如果作業更新至關重要,請使用 Python SDK 版本 <= 2.23.0 或 > 2.25.0。( BEAM-11113)

貢獻者清單

根據 git shortlog,以下人員對 2.25.0 版本做出了貢獻。感謝所有貢獻者!

Ahmet Altay, Alan Myrvold, Aldair Coronel Ruiz, Alexey Romanenko, Andrew Pilloud, Ankur Goenka, Ayoub ENNASSIRI, Bipin Upadhyaya, Boyuan Zhang, Brian Hulette, Brian Michalski, Chad Dombrova, Chamikara Jayalath, Damon Douglas, Daniel Oliveira, David Cavazos, David Janicek, Doug Roeper, Eric Roshan-Eisner, Etta Rapp, Eugene Kirpichov, Filipe Regadas, Heejong Lee, Ihor Indyk, Irvi Firqotul Aini, Ismaël Mejía, Jan Lukavský, Jayendra, Jiadai Xia, Jithin Sukumar, Jozsef Bartok, Kamil Gałuszka, Kamil Wasilewski, Kasia Kucharczyk, Kenneth Jung, Kenneth Knowles, Kevin Puthusseri, Kevin Sijo Puthusseri, KevinGG, Kyle Weaver, Leiyi Zhang, Lourens Naudé, Luke Cwik, Matthew Ouyang, Maximilian Michels, Michal Walenia, Milan Cermak, Monica Song, Nelson Osacky, Neville Li, Ning Kang, Pablo Estrada, Piotr Szuberski, Qihang, Rehman, Reuven Lax, Robert Bradshaw, Robert Burke, Rui Wang, Saavan Nanavati, Sam Bourne, Sam Rohde, Sam Whittle, Sergiy Kolesnikov, Sindy Li, Siyuan Chen, Steve Niemitz, Terry Xian, Thomas Weise, Tobiasz Kędzierski, Truc Le, Tyson Hamilton, Udi Meiri, Valentyn Tymofieiev, Yichi Zhang, Yifan Mai, Yueyang Qiu, annaqin418, danielxjd, dennis, dp, fuyuwei, lostluck, nehsyc, odeshpande, odidev, pulasthi, purbanow, rworley-monster, sclukas77, terryxian78, tvalentyn, yoshiki.obata