什麼是 Apache Spark?

Apache Spark 是用於大規模資料處理的整合數據分析引擎,內建 SQL、串流、機器學習和圖形處理等多種模組。Spark 可在 Kubernetes、獨立叢集或在雲端環境中以原生方式執行,處理各種資料來源。這項服務提供豐富的 Java、Scala、Python (PySpark) 和 R API,可供廣大開發人員和資料科學家使用。

在 Google Cloud,透過 Managed Service for Apache Spark,Apache Spark 轉型為「從資料到 AI」平台。Google Cloud 提供代管叢集或 Serverless Spark 選項,以及 Lightning Engine 等突破性效能強化功能,解決與傳統 Spark 部署作業相關的「調整稅」問題。透過與統合資料和 AI 平台深度整合,使用者能以前所未有的速度,將原始資料轉化為 AI 導向的行動。

Apache Spark 總覽

Spark 生態系統包括五個主要元件:

  • Spark Core 是通用的分散式資料處理引擎,這是基礎執行引擎,可管理分散式任務分派、排程和基本 I/O。Spark Core 引進了彈性分散式資料集 (RDD) 的概念,這是可在容錯模式下平行處理的不可變分散式物件集合。建構於其上的程式庫適用於 SQL、串流處理、機器學習和圖形運算,且可以在應用程式中一起使用。
  • Spark SQL 是處理結構化資料的 Spark 模組,並導入 DataFrames,為結構化資料操作提供比 RDD 更優異且更方便開發人員使用的 API。這個模組讓您可以使用 SQL 或熟悉的 DataFrame API 在 Spark 程式中查詢結構化資料。Spark SQL 支援 HiveQL 語法,並允許存取現有的 Apache Hive 倉儲。Google Cloud 透過 Lightning Engine 等創新技術,進一步提升 Spark 工作效能,尤其是 SQL 和 DataFrame 作業,在 Google Cloud 上執行 Spark 時,查詢和資料處理作業的速度會大幅提升。
  • Spark Streaming 讓您可以輕鬆建構可擴充的容錯串流解決方案。這項元件將 Spark 語言整合 API 融入串流處理,讓您也可以使用與批次工作相同的方式,編寫串流工作,無論是使用 DStreams,還是以 DataFrames 為基礎的較新版 Structured Streaming API 皆適用。Spark Streaming 支援 Java、Scala 和 Python,且具備立即可用的有狀態「一次性」語意。
  • MLlib 是 Spark 可擴充的機器學習程式庫,並且提供工具讓實用的機器學習可以輕鬆擴充且容易使用。MLlib 包含許多常見的學習演算法,例如分類、迴歸、推薦和分群。它還包含工作流程和其他公用程式,例如特徵轉換、機器學習 pipeline 建構、模型評估、分散式線性代數和統計資料等。搭配 Gemini Enterprise Agent Platform 使用時,Spark MLlib 工作流程可完美整合至 MLOps 管道,並透過 Gemini 進行程式設計和疑難排解,進而提升開發效率。
  • GraphX 是用於圖形和圖形平行運算的 Spark API,將「擷取、轉換和載入」、「探索性分析」和「疊代圖運算」整合到同個系統,使用上相當靈活,可與圖形和集合完美搭配。

Apache Spark 生態系統和元件

Spark 生態系統包括五個主要元件,每個元件都透過 Google Cloud 的基礎架構獲得強化:

  • Spark Core:基礎執行引擎,可管理分散式任務分派和 I/O。Spark Core 引進了彈性分散式資料集 (RDD) 的概念,這是可在容錯模式下平行處理的不可變分散式物件集合。
  • Spark SQL:使用 DataFrames 處理結構化資料的模組。Google Cloud 透過 Lightning Engine 進一步提升這些作業的速度,無需手動調整。
  • Spark Streaming:可為批次和即時工作建構可擴充的容錯串流解決方案。
  • MLlib:可擴充的機器學習程式庫。搭配 Gemini Enterprise Agent Platform 使用時,MLlib 工作流程可完美整合至 MLOps 管道,並透過 Gemini 進行程式設計和疑難排解,進而提升開發效率。
  • GraphX:用於圖形和圖形平行運算的 API。

Apache Spark 的好處有哪些?

速度

相較於磁碟式處理引擎,Spark 的記憶體內處理和 DAG 排程器可讓工作負載執行速度更快,尤其是疊代任務。Google Cloud 透過最佳化基礎架構和 Lightning Engine 提升速度。

易用性

Spark 的高階運算子可簡化平行處理應用程式的建構作業。您可以透過 Scala、Python、R 和 SQL 以互動方式使用 Spark,加速開發作業。Google Cloud 提供無伺服器選項,以及整合筆記本與 Gemini。

擴充性

Spark 提供水平擴充能力,可將工作分散至叢集節點,處理大量資料。Google Cloud 提供無伺服器自動調度資源功能和彈性的代管叢集,可簡化擴充作業。

通用性

Spark 提供多個程式庫,包括 SQL 和 DataFrames、機器學習適用的 MLlib、GraphX 和 Spark Streaming。您可在同一應用程式中無縫組合這些程式庫。

在開放原始碼架構下,帶動技術創新

Spark 運用開放原始碼社群的力量,快速創新並解決問題。Google Cloud 秉持開放精神,提供標準 Apache Spark,同時強化其功能。

為什麼要選擇 Spark 而非僅限 SQL 的引擎?

Apache Spark 是一種快速的通用型叢集或無伺服器運算引擎。透過 Spark,程式設計師可以使用 Java、Scala、Python、R 和 SQL 快速編寫應用程式,然後讓開發人員、數據資料學家和具有統計經驗的進階商務使用者都可以存取。使用 Spark SQL 時,使用者可以連接任何資料來源,並將其顯示為資料表供 SQL 用戶端使用。此外,在 Spark 中也可以輕鬆實作互動式機器學習演算法。

使用 Apache Impala、Apache Hive 或 Apache Drill 之類僅限 SQL 的引擎時,使用者只能使用 SQL 或類似 SQL 的語言查詢儲存在多個資料庫中的資料。所以架構比 Spark 要小一些。 不過,在 Google Cloud 上,您不必做出嚴格的選擇;BigQuery 提供強大的 SQL 功能,而 Managed Service for Apache Spark 則可讓您透過 Lakehouse 使用 Spark 的多功能性處理相同資料,並支援 Apache Iceberg 等開放格式。

公司如何運用 Spark?

很多公司都會使用 Spark 將需要密集運算的艱鉅任務化繁為簡,更有效率地處理及分析大量的結構化和非結構化即時/封存資料。此外,Spark 也讓使用者能完美整合相關的複雜功能,例如機器學習和圖形演算法。 常見應用包括:

  • 大規模 ETL/ELT
  • 即時資料處理
  • 機器學習
  • 互動式資料探索
  • 圖表數據分析

資料工程師

資料工程師仰賴 Spark 來設計、建構及維護穩固的資料處理管道和大規模 ETL 工作流程。在 Google Cloud,資料工程師可以運用 Managed Service for Apache Spark 消除基礎架構手動作業,選擇零營運負擔的無伺服器執行環境,或是全代管叢集。透過與 BigQuery 和 Knowledge Catalog 的完美整合,工程師可使用 Apache Iceberg 等格式,建構受管理的開放式湖倉架構。此外,他們還能運用資料代理和 Gemini 自動整理資料,並加速生成 PySpark 程式碼,以空前的速度從原始資料進入可用於正式環境的管道。

數據資料學家

數據資料學家可以使用 Spark 搭配 GPU,在數據分析和機器學習方面獲得更豐富的成果。能使用熟悉的語言更快處理大量資料,將有助於加速創新。 Google Cloud 為 Spark 提供強大的 GPU 支援,並與 Gemini Enterprise Agent Platform 完美整合,讓資料科學家能更快建構及部署模型。他們可以連結偏好的 IDE,例如 Jupyter 或 VS Code,享受彈性的開發體驗。這種彈性的開發體驗,再加上 Gemini 的支援,讓他們從最初的探索階段到實際部署,都能加快工作流程。

在 Google Cloud 使用 Spark 的絕佳方式

革新 Spark 工作,更輕鬆、聰明、快速

Google Cloud 可解決大規模執行 Spark 時常見的難題,讓您專心取得洞察資訊,不必煩惱基礎架構。運用 Managed Service for Apache Spark 提升體驗。Managed Service for Apache Spark

  • 彈性的部署選項:為工作負載選擇合適的環境。您可以選擇零營運負擔的 Serverless Spark,或是全代管叢集,維持精細的控制權。
  • 領先業界的效能:Lightning Engine 可將最嚴苛的 ETL 和資料科學工作負載速度最多提升 4.9 倍。這項功能適用於無伺服器和代管叢集,可降低運算成本,且無需變更任何程式碼,就能自動調整。
  • 在您偏好的 IDE 中進行統一開發:無論是 VS Code、Jupyter 或其他環境,都能直接在其中編寫及執行 Spark 程式碼。在同一個受管理資料上,順暢使用 SQL 和 Spark,不必切換環境。
  • 代理式 AI 開發:使用資料代理自動處理 PySpark 程式設計和資料整理作業,加快工作流程。運用 Gemini Cloud Assist 自動分析根本原因,排解複雜工作問題。
  • 統一治理:使用 Knowledge Catalog 管理資料和 AI 治理機制,為代理提供語意,確保資料生命週期從擷取到 AI 導向洞察都保持一致。

其他資源

後續行動

運用價值 $300 美元的免費抵免額和 20 多項一律免費的產品,開始在 Google Cloud 建構產品與服務。