部落格與發佈
2018/06/26
Apache Beam 2.5.0
我們很高興推出 Beam 的新版本 2.5.0。此版本包含多項修復和新功能。
如需更多資訊,請查看詳細的發行說明。
新功能/改進
Go SDK 支援
經過一段孵化期和社群的努力,Go SDK 已正式被專案接受。Go 管線在 Dataflow 執行器上運行。更多詳細資訊請參閱這裡。
Parquet 支援
新增了對 Apache Parquet 格式的支援。它使用 Parquet 1.10 版本,由於 AvroParquerWriter 的 API 變更,允許 FileIO.Sink 實作。
效能/整合測試
- 新增了新的整合測試 - HCatalogIOIT (Hive)、HBaseIOIT、ParquetIOIT (包含 IO 本身、本機檔案系統、HDFS)
- 多節點(3 個資料節點)HDFS 叢集用於在 HDFS 上執行測試。
- 效能測試運行和結果分析方面的一些改進。
- 將 Kubernetes 叢集從 1 個節點擴展到 3 個節點。
- 在 Spark 串流中新增了指標。
內部建置系統:遷移至 Gradle
經過社群數月的努力,內部 Beam 建置已從 Maven 遷移至 Gradle。選擇新的建置系統是因為它支援依賴驅動的建置、增量建置/測試以及對非 Java 語言的支援。
Nexmark 改進
- 支援 Kafka 作為事件和結果的來源/接收器。
- 將一些查詢翻譯成 Beam SQL。
Beam SQL
- 支援 MAP、ROW、ARRAY 資料類型
- 支援在陣列欄位上 UNNEST
- 改進的優化
- 將 Calcite 升級至 1.16
- 透過自動轉換支援 POJO 上的 SQL
- Schema 已移至核心 Beam
- UDAF 可以是 CombineFn 的間接子類別
- 許多其他小錯誤修復
可移植性
- 與支援執行器的可移植執行相關的通用共享程式碼。
- Python SDK 支援透過可移植性 API 進行側輸入。
以執行器不可知的方式提取指標
指標由執行器推送到可設定的接收器(提供 Http REST 接收器)。它已在 Flink 和 Spark 執行器中啟用,Dataflow 的工作正在進行中。
其他修復
SDK
- 為 Python SDK 實作了 HDFS 檔案系統。
- Python SDK 為串流執行新增了對側輸入的支援。
執行器
- 將 Spark 執行器更新至 Spark 版本 2.3.1
- 修復了在 Directrunner 中,延遲元素視窗化到過期的固定視窗中會被捨棄的問題。
IO
- CassandraIO 獲得了基於重疊區域的更好的分割演算法。
- ElasticsearchIO 支援部分更新。
- ElasticsearchIO 允許傳遞每個文件的 ID、類型和索引。
- SolrIO 支援更穩健的寫入重試策略。
- S3 檔案系統支援加密 (SSE-S3、SSE-C 和 SSE-KMS)。
- 改進了 JdbcIO 中的連線管理。
- 新增了在發佈到 Kafka 時支援元素時間戳記。
其他
- 使用 Java ErrorProne 進行靜態分析。
貢獻者列表
根據 git shortlog,以下 84 人為 2.5.0 版本做出了貢獻。感謝所有貢獻者!
Ahmet Altay, Alan Myrvold, Alex Amato, Alex Van Boxel, Alexander Dejanovski, Alexey Romanenko, Aljoscha Krettek, ananvay, Andreas Ehrencrona, Andrew Pilloud, Ankur Goenka, Anton Kedin, arkash, Austin Bennett, Axel Magnuson, Ben Chambers, Ben Sidhom, Bill Neubauer, Boyuan Zhang, Braden Bassingthwaite, Cade Markegard, cclauss, Chamikara Jayalath, Charles Chen, Chuan Yu Foo, Cody Schroeder, Colm O hEigeartaigh, Daniel Oliveira, Dariusz Aniszewski, David Cavazos, Dawid Wysakowicz, Eric Roshan-Eisner, Etienne Chauchot, Eugene Kirpichov, Flavio Fiszman, Geet Kumar, GlennAmmons, Grzegorz Kołakowski, Henning Rohde, Innocent Djiofack, Ismaël Mejía, Jack Hsueh, Jason Kuster, Javier Antonio Gonzalez Trejo, Jean-Baptiste Onofré, Kai Jiang, Kamil Szewczyk, Katarzyna Kucharczyk, Kenneth Jung, Kenneth Knowles, Kevin Peterson, Lukasz Cwik, Łukasz Gajowy, Mairbek Khadikov, Manu Zhang, Maria Garcia Herrero, Marian Dvorsky, Mark Liu, Matthias Feys, Matthias Wessendorf, mingmxu, Nathan Howell, Pablo Estrada, Paul Gerver, Raghu Angadi, rarokni, Reuven Lax, Rezan Achmad, Robbe Sneyders, Robert Bradshaw, Robert Burke, Romain Manni-Bucau, Sam Waggoner, Sam Whittle, Scott Wegner, Stephan Hoyer, Thomas Groh, Thomas Weise, Tim Robertson, Udi Meiri, Valentyn Tymofieiev, XuMingmin, Yifan Zou, Yunqing Zhou