2024 開源資料工程生態系統全景圖

ApacheSeaTunnel發表於2024-04-02

file

作者 | ALIREZA SADEGHI

翻譯 | Debra Chen

簡介

雖然生成式人工智慧和ChatGPT帶來的沸沸揚揚的炒作令科技界為之一振,但在資料工程領域,2023年仍然是一個令人振奮和充滿活力的一年,資料工程生態系統變得更加多樣化和複雜化,系統中的所有層面都在不斷創新和演進。

隨著各種開源工具、框架和解決方案的持續湧現,資料工程師的選擇也越來越多!在這樣快速變化的環境中,緊跟最新技術和趨勢的重要性不言而喻。選擇合適的工具來完成合適的工作是一項至關重要的技能,確保在不斷變化的資料工程挑戰面前保持效率和相關性。

作為一名資深資料工程師和顧問,我一直密切關注著資料工程趨勢,我想在2024年初向大家介紹開源資料工程生態系統,包括識別關鍵的活躍專案和重要工具,讓大家在這個充滿活力的技術領域中能夠做出明智的決策。

為什麼要再出一份生態全景圖?

為什麼我要再出一份資料生態系統全景圖呢?雖然有類似的週期性報告,比如著名的MAD Landscape、資料工程現狀和Reppoint開源Top25,但我做的這份全景圖專注於僅適用於資料平臺和資料工程生命週期的開源工具。MAD Landscape提供了對機器學習、人工智慧和資料的所有工具和服務的非常全面的概覽,包括商業和開源專案,而本報告呈現的生態系統則更全面地展示了MAD中關於資料部分的活躍開源專案。其他報告,比如Reppoint開源Top25和Data50更關注SaaS提供商和創業公司,而本報告則更關注開源專案本身,而非SaaS服務。

像Github的開源現狀、Stackoverflow年度調查和OSS Insight報告這樣的年度報告和調查也是瞭解社群中正在使用或趨勢的重要來源,但它們涵蓋的資料生態系統有限(如資料庫和程式語言)。

因此,我出於對開源資料棧的興趣,便整理了資料工程生態系統中的開源工具和服務。

所以,不多說了,這就是2024年的開源資料工程生態系統:

file

開源資料工程生態系統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引擎)進一步分類,如下圖所示。

file

2. 資料湖平臺

資料湖平臺在過去一年持續成熟化,Gartner把資料湖放在了其2023年版的資料管理炒作週期圖上。

file

對於儲存層,分散式檔案系統物件儲存仍然是服務於本地和基於雲的資料湖實施的主要技術基石。儘管HDFS仍然是本地Hadoop叢集的主流技術,但Apache Ozone分散式物件儲存正在迎頭趕上,為本地資料湖儲存技術提供了另一種選擇。主流商業Hadoop提供商Cloudera現在把Ozone作為其CDP私有云產品的一部分。

資料序列化格式的選擇會影響儲存效率和處理效能。在Hadoop生態系統中,Apache ORC仍然是列儲存的首選,而Apache Parquet已經成為現代資料湖中資料序列化的事實標準。它之所以受歡迎,是因為它體積不大、高效壓縮以及與各種處理引擎的廣泛相容性。

2023年的另一個關鍵趨勢是儲存和計算層的解耦。許多儲存系統現在提供與基於雲的物件儲存解決方案(如S3)的整合,利用其固有的效率和彈性。這種方法允許資料處理資源獨立於儲存進行擴充套件,從而實現成本節省和增強可擴充套件性。Cockroachdb支援S3作為儲存後端,Confluent提供在S3上長期保留Kafka主題資料的服務,進一步說明了這一趨勢,突顯了資料湖作為經濟實惠、長期儲存解決方案的不斷增長的使用。

2023年最熱門的發展之一是開放表格格式的興起。這些框架實質上充當了一個表格抽象和虛擬資料管理層,位於你的資料湖儲存和資料層之上,如下圖所示。

file

當前,開放表格格式領域三足鼎立:

  • 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 InlongApache SeaTunnel,它們以其獨特的優勢提供的的替代方案引人注目。

與此同時,得益於Kafka生態系統的積極發展,流式CDC(變更資料捕獲)也進一步成熟。Kafka ConnectDebezium外掛已經成為從資料庫系統中進行近實時資料捕獲的首選,而對於使用Flink作為主要流處理引擎的部署,Flink CDC聯結器正在獲得越來越多的關注。

除了傳統的資料庫之外,諸如CloudQueryStreampipe之類的工具正在簡化對API的資料整合,為各種來源的資料提供了方便的解決方案,這反映了與雲服務靈活整合的重要性的增長。

在事件和訊息中介軟體領域,雖然有挑戰者如Redpanda追趕,但Apache Kafka的地位無人撼動。Redpanda在2023年獲得了1億美元的C輪融資,表明資本對提供低延遲和高吞吐量的替代訊息代理的興趣正在增長。

4. 資料處理與計算

流處理領域在2023年繼續升溫!Apache SparkApache 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之類的引擎為上層應用程式和底層引擎之間提供了查詢和計算中介軟體。

file

結論

對開源資料工程生態系統的探索是我們對不斷變動而充滿活力的資料工程世界的一瞥。雖然這份全景圖中各個類別涵蓋了表現突出的工具和技術,但這個生態系統仍在迅速發展,不斷湧現新的解決方案。

注意,這不是一個詳盡的列表,而“最佳”的工具最終取決於你的具體需求和用例。如果我漏掉了任何值得注意的好工具,歡迎隨時分享給我。

本文由 白鯨開源 提供釋出支援!

相關文章