作者 | ALIREZA SADEGHI 翻譯 | Debra Chen 簡介 雖然生成式人工智慧和ChatGPT帶來的沸沸揚揚的炒作令科技界為之一振,但在數據工程領域,2023年仍然是一個令人振奮和充滿活力的一年,數據工程生態系統變得更加多樣化和複雜化,系統中的所有層面都在不斷創新和演進。 隨著各 ...
作者 | ALIREZA SADEGHI
翻譯 | Debra Chen
簡介
雖然生成式人工智慧和ChatGPT帶來的沸沸揚揚的炒作令科技界為之一振,但在數據工程領域,2023年仍然是一個令人振奮和充滿活力的一年,數據工程生態系統變得更加多樣化和複雜化,系統中的所有層面都在不斷創新和演進。
隨著各種開源工具、框架和解決方案的持續涌現,數據工程師的選擇也越來越多!在這樣快速變化的環境中,緊跟最新技術和趨勢的重要性不言而喻。選擇合適的工具來完成合適的工作是一項至關重要的技能,確保在不斷變化的數據工程挑戰面前保持效率和相關性。
作為一名資深數據工程師和顧問,我一直密切關註著數據工程趨勢,我想在2024年初向大家介紹開源數據工程生態系統,包括識別關鍵的活躍項目和重要工具,讓大家在這個充滿活力的技術領域中能夠做出明智的決策。
為什麼要再出一份生態全景圖?
為什麼我要再出一份數據生態系統全景圖呢?雖然有類似的周期性報告,比如著名的MAD Landscape、數據工程現狀和Reppoint開源Top25,但我做的這份全景圖專註於僅適用於數據平臺和數據工程生命周期的開源工具。MAD Landscape提供了對機器學習、人工智慧和數據的所有工具和服務的非常全面的概覽,包括商業和開源項目,而本報告呈現的生態系統則更全面地展示了MAD中關於數據部分的活躍開源項目。其他報告,比如Reppoint開源Top25和Data50更關註SaaS提供商和創業公司,而本報告則更關註開源項目本身,而非SaaS服務。
像Github的開源現狀、Stackoverflow年度調查和OSS Insight報告這樣的年度報告和調查也是瞭解社區中正在使用或趨勢的重要來源,但它們涵蓋的數據生態系統有限(如資料庫和編程語言)。
因此,我出於對開源數據棧的興趣,便整理了數據工程生態系統中的開源工具和服務。
所以,不多說了,這就是2024年的開源數據工程生態系統:
開源數據工程生態系統2024年
工具選擇標準
每個類別的可用開源項目顯然數目龐大,把每個工具和服務都納入其中是不現實的。因此,我遵循了以下選擇每個類別工具的標準:
- 排除了任何已退休、存檔和被放棄的項目。大家很關註的退休項目包括Apache Sqoop、Scribe和Apache Apex,雖然它們仍然可能在一些生產環境中使用。
- 排除了過去一年在Github上完全不活躍的項目,以及在社區中幾乎未被提及的項目。比如Apache Pig和Apache Oozie項目。
- 排除了仍然相對較新且在Github上沒有獲得太多關註(如stars、forks)以及在博客文章、案例展示和線上社區中幾乎未被提及的項目。但是一些有前景的項目,如OneTable,已經取得了一些值得註意的進展,並且是基於現有技術構建的。
- 除了機器學習平臺和基礎設施工具,數據科學、機器學習和人工智慧工具被排除在外,因為我只關註與數據工程學科相關的內容。
- 不同類型的存儲系統,如關係型OLTP和嵌入式資料庫系統都有所列舉。因為數據工程學科涉及到處理應用程式和運營系統(BSS)中使用的許多不同的內部和外部存儲系統,即使它們不是分析堆棧的一部分。
- 類別的名稱儘可能地通用,基於這些工具在數據堆棧中的位置來分門別類。對於存儲系統,主要的資料庫模型和資料庫工作負載(OLTP、OLAP)用於對存儲系統進行分組和標記,但是例如“分散式SQL DBMS”也被稱為HTAP或可擴展的SQL資料庫。
- 一些工具可能屬於多個類別。例如,VoltDB既是記憶體資料庫又是分散式SQL DBMS。但是我儘量將它們放在市場上最常識別的類別中。
- 對於某些資料庫系統,它們實際所屬的類別可能有些模糊。例如,ByConity聲稱自己是數據倉庫解決方案,但是它是建立在被認為是實時OLAP引擎的ClickHouse之上的。因此,目前還不清楚它是否是實時(能夠支持亞秒查詢)的OLAP系統。
- 並非所有列出的項目都是完全可遷移的開源工具。其中一些項目更像是Open Core而不是開源。在開放核心模型中,不是所有組件都是由主要SaaS提供商提供的完整系統的開源。因此,在決定採用開源工具時,考慮項目有多具有可移植性和真正開源是很重要的。
工具類別概述
在接下來的部分中,我簡單討論下每個類別。
1. 存儲系統
存儲系統是這份生態系統全景圖中最大的類別,主要歸因於專門的資料庫系統近期以來激增。最新的兩個流行類別是矢量資料庫和流資料庫。Materialize和RaisingWave是開源流資料庫系統的示例。矢量資料庫在存儲系統領域也經歷了快速增長。我將矢量存儲系統放在ML平臺部分,因為它們主要用於ML和AI堆棧。分散式文件系統和對象存儲也有了它們自己的相關類別,即數據湖平臺。
如選擇標準部分所述,存儲系統根據主要的資料庫模型和工作負載進行分組和標記。在最高層面上,存儲系統可以分為三個主要類別:OLTP、OLAP和HTAP。它們可以根據SQL vs NoSQL(OLTP引擎)以及離線(非實時)vs 實時(亞秒結果)(OLAP引擎)進一步分類,如下圖所示。
2. 數據湖平臺
數據湖平臺在過去一年持續成熟化,Gartner把數據湖放在了其2023年版的數據管理炒作周期圖上。
對於存儲層,分散式文件系統和對象存儲仍然是服務於本地和基於雲的數據湖實施的主要技術基石。儘管HDFS仍然是本地Hadoop集群的主流技術,但Apache Ozone分散式對象存儲正在迎頭趕上,為本地數據湖存儲技術提供了另一種選擇。主流商業Hadoop提供商Cloudera現在把Ozone作為其CDP私有雲產品的一部分。
數據序列化格式的選擇會影響存儲效率和處理性能。在Hadoop生態系統中,Apache ORC仍然是列存儲的首選,而Apache Parquet已經成為現代數據湖中數據序列化的事實標準。它之所以受歡迎,是因為它體積不大、高效壓縮以及與各種處理引擎的廣泛相容性。
2023年的另一個關鍵趨勢是存儲和計算層的解耦。許多存儲系統現在提供與基於雲的對象存儲解決方案(如S3)的集成,利用其固有的效率和彈性。這種方法允許數據處理資源獨立於存儲進行擴展,從而實現成本節省和增強可擴展性。Cockroachdb支持S3作為存儲後端,Confluent提供在S3上長期保留Kafka主題數據的服務,進一步說明瞭這一趨勢,突顯了數據湖作為經濟實惠、長期存儲解決方案的不斷增長的使用。
2023年最熱門的發展之一是開放表格格式的興起。這些框架實質上充當了一個表格抽象和虛擬數據管理層,位於你的數據湖存儲和數據層之上,如下圖所示。
當前,開放表格格式領域三足鼎立:
- Apache Hudi:最初由Uber開發和開源,其主要設計目標是支持近實時數據更新和ACID事務。
- Apache Iceberg:由Netflix的工程團隊發起。
- Delta Lake:由Databricks創建和開源,與Databricks平臺無縫集成。
在這個賽道的領先SaaS提供商Databricks、Tabular和OneHouse,在2023年獲得的融資顯示出市場對這個領域的興趣,以及它們進一步推進數據湖上數據管理的潛力。
此外,現在正在出現一種新的趨勢,即統一的數據湖層的出現。OneTable(最近由OneHouse開源)和UniForm(目前是Databricks的非開源產品)是去年宣佈的兩個領先項目。這些工具超越了單個表格格式,提供了在一個單一框架下使用所有這三個主要競爭者的能力。這讓用戶能夠採用通用格式,同時以其首選格式向處理引擎暴露數據,從而提高了靈活性和敏捷性。
3. 數據集成
2023年的數據集成領域不僅繼續由Apache Nifi、Airbyte和Meltano等老牌玩家主導,還出現了一些有前景的工具,例如Apache Inlong和Apache SeaTunnel,它們以其獨特的優勢提供的的替代方案引人註目。
與此同時,得益於Kafka生態系統的積極發展,流式CDC(變更數據捕獲)也進一步成熟。Kafka Connect和Debezium插件已經成為從資料庫系統中進行近實時數據捕獲的首選,而對於使用Flink作為主要流處理引擎的部署,Flink CDC連接器正在獲得越來越多的關註。
除了傳統的資料庫之外,諸如CloudQuery和Streampipe之類的工具正在簡化對API的數據集成,為各種來源的數據提供了方便的解決方案,這反映了與雲服務靈活集成的重要性的增長。
在事件和消息中間件領域,雖然有挑戰者如Redpanda追趕,但Apache Kafka的地位無人撼動。Redpanda在2023年獲得了1億美元的C輪融資,表明資本對提供低延遲和高吞吐量的替代消息代理的興趣正在增長。
4. 數據處理與計算
流處理領域在2023年繼續升溫!Apache Spark和Apache Flink仍然是主導者,但Apache Flink在2023年吸引了一些嚴肅的關註。AWS和阿裡巴巴等雲巨頭推出了Flink-as-a-service產品,Confluent收購了Immerok並推出了自己的全托管Flink產品,可以看到這一強大引擎背後的動力。
在Python生態系統中,數據處理庫如Vaex、Dask、polars和Ray可用於利用多核處理器。這些並行執行庫進一步拓展了在熟悉的Python環境中分析大規模數據集的可能性。
5. 工作流管理與DataOps
工作流調度的生態可以說是整個生態系統中最豐富的類別,其中既有老牌巨頭也有令人興奮的新秀。
諸如Apache Airflow和Dagster之類的老牌工具仍然很受歡迎,儘管最近社區中關於工作流調度引擎的拆解、重新打包和打包與不打包的辯論異常激烈,但它們仍然是被廣泛採用的調度引擎。另一方面,在過去的兩年中,GitHub見證了幾個令人信服的新興工具的崛起,它們獲得了相當大的關註。Kestra、Temporal、Mage和Windmill都值得關註,它們各自有著獨特的優勢。無論是專註於無伺服器編排,如Temporal,還是分散式任務執行,如Mage,這些新秀都能滿足現代數據管道不斷發展的需求。
6. 數據基礎設施與監控
最近Grafana Labs的調查證實,Grafana、Prometheus和ELK仍然在可觀察性和監控領域占據主導地位。Grafana Labs本身一直非常活躍,推出了新的開源工具,如Loki(用於日誌聚合)和Mimir(用於長期的Prometheus存儲),進一步加強了平臺能力。
在集群管理和監控方面,開源工具似乎就不那麼熱門了。這可能是因為雲遷移的趨勢減少了對管理大型本地數據平臺的需求。雖然Apache Ambari項目曾經因Hadoop集群管理火爆一時,但在2019年Hortonworks和Cloudera合併後幾乎被放棄,最近重新燃起的複蘇的小火苗又給它的未來帶來一絲希望。但是,它的命運是否長久仍然不確定。
至於資源調度和工作負載部署,Kubernetes似乎是首選的資源調度,特別是在基於雲的平臺上。
7. 機器學習平臺
機器學習平臺是最活躍的類別之一,其中矢量資料庫受到了前所未有的關註。這是一種針對高維數據存儲和檢索進行優化的專用系統。正如DB-Engines的2023年報告所強調的,矢量資料庫成為過去一年中最受歡迎的資料庫類別。
MLOps工具在高效擴展ML項目方面也發揮著越來越重要的作用,確保ML應用程式生命周期管理的順利運行。隨著ML部署的複雜性和規模不斷增長,MLOps工具已成為簡化ML模型開發、部署和監控的不可或缺的工具。
8. 元數據管理
近年來,元數據管理已經成為關註焦點,這是由於對數據進行管理和訪問的需求不斷增長。然而,缺乏全面的元數據管理平臺促使像Netflix、Lyft、Airbnb、Twitter、LinkedIn和Paypal等科技巨頭構建自己的解決方案。
這些努力為開源社區帶來了一些顯著的變化。像Amundsen(來自Lyft)、DataHub(來自LinkedIn)和Marquez(來自WeWork)這樣的工具是自主開發的解決方案,都已經開源並正在積極開發和貢獻。
至於架構管理,這個領域仍然有些停滯不前。Hive Metastore仍然是許多人的首選解決方案,因為目前沒有替代的開源解決方案來取代它。
9. 分析與可視化
在商業智能(BI)和可視化領域,Apache Superset是最活躍和受歡迎的開源替代方案,與許可的SaaS BI解決方案相比,它的表現更為出色。
對於分散式和大規模並行處理(MPP)引擎,一些專家認為大數據已經過時,大多數公司不需要大規模的分散式處理,而是選擇單個強大的伺服器來處理其數據量。
儘管有這種說法,但分散式大規模並行處理(MPP)引擎,如Apache Hive、Impala、Presto和Trino,在大型數據平臺中仍然非常普遍,特別是對於擁有PB級數據的情況。
除了傳統的MPP引擎之外,統一執行引擎是另一個獲得關註的趨勢。諸如Apache Linkis、Alluxio和Cube之類的引擎為上層應用程式和底層引擎之間提供了查詢和計算中間件。
結論
對開源數據工程生態系統的探索是我們對不斷變動而充滿活力的數據工程世界的一瞥。雖然這份全景圖中各個類別涵蓋了表現突出的工具和技術,但這個生態系統仍在迅速發展,不斷涌現新的解決方案。
註意,這不是一個詳盡的列表,而“最佳”的工具最終取決於你的具體需求和用例。如果我漏掉了任何值得註意的好工具,歡迎隨時分享給我。
本文由 白鯨開源 提供發佈支持!