什麼是 Apache Kafka?

上次更新時間:2026 年 6 月 12 日

Apache Kafka 是熱門的開放原始碼事件串流平台,用於收集、處理及儲存連續的事件串流。Kafka 通常是做為訊息中介軟體,但也具備擴充性和備援能力,可讓分散式應用程式處理單一事件 (每天) 到數十億個事件 (每秒)。有別於傳統訊息系統,Kafka 也是持久儲存空間,可將記錄儲存在有序的記錄檔中,並以可重現的方式讀取和重新讀取。因此,Kafka 是將變更分配至交易資料庫的常用系統,可用於在數據分析和其他系統中重建或實現資料。這種模式有時稱為事件溯源。

因此,Kafka 對於傳統事件匯流排模式 (透過訊息中介軟體整合事件導向應用程式),以及資料聯合發布 (或「異質具體化」) 架構都非常重要。這種做法延遲時間短,且符合成本效益。

歡迎瞭解 Google Cloud Managed Service for Apache Kafka,自動串流基礎架構,加速「從資料到 AI」工作流程。

Apache Kafka 總覽

Kafka 會取用串流資料並準確記錄發生了什麼以及何時發生,這項記錄稱為僅附加的記錄。這是不可變的內容,因為只能附加而不能更改。接著,應用程式可即時訂閱記錄、存取資料,或發布記錄、新增資料。

雖然「Kafka」的核心通常是指低延遲儲存系統,但這個串流平台還包含其他重要元件。首先是 Kafka Connect,這項整合系統可讓連接器水平擴充,並連至多個重要系統。這包括變更資料擷取 (CDC) 連接器、叢集對叢集複寫 (MirrorMaker),以及將資料寫入下游系統 (例如湖倉 (Apache Iceberg))、湖泊 (物件儲存空間中的 Avro 或 Parquet 檔案) 和資料庫 (例如 BigQuery) 的功能。其次,Kafka 專案隨附一組強大的用戶端,包括用於操控叢集和主題的管理指令列用戶端,以及用於讀取和寫入資料的高效能用戶端程式庫。   

過去,資料處理通常是透過週期性的批次工作進行,也就是會先儲存原始資料,之後每隔一段時間再處理。舉例來說,零售公司可能會等到一天結束時才分析銷售資料。批次處理有其侷限性,其中一個就是無法即時處理。越來越多組織和資料科學家希望在資料生成時就即時分析,以便及時做出業務決策,並為即時 AI 模型提供資料。這時事件串流就可以派上用場。事件串流會即時處理持續湧進的事件串流。這項技術可擷取資料的時間值並啟用推送式應用程式,只要發生需要關注的事情,推送式應用程式就會採取行動。對資料科學家來說,這代表他們能即時進行特徵工程,並提供低延遲的預測結果。

資料工程師使用 Apache Kafka 的原因

雖然許多組織都著重於資料科學家產生的下游洞察資訊,但 Apache Kafka 的主要使用者是資料工程師。這些專業人員負責建構重要的「資料管道」和整合機制,連結公司的應用程式和資料庫。

資料工程師會使用 Kafka 在技術堆疊中建立可靠的連線,整合方式如下:

  • 應用程式之間:透過事件導向架構,讓微服務彼此通訊
  • 資料庫之間:在不同儲存系統之間同步資料,以利備援或進行特殊處理
  • 應用程式與資料庫:擷取前端事件 (例如使用者在行動應用程式上的互動),並將這些事件串流至後端資料庫

在一般企業中,資料工程師會與應用程式團隊密切合作,確保使用者事件、業務交易和資料庫更新項目匯出至 Kafka。這個程序稱為資料聯合發布,可讓組織中的多位使用者和系統同時存取這些事件。

資料工程師會編寫管道程式碼,將原始應用程式記錄轉換為結構化且高品質的格式。這項轉換程序對資料科學家至關重要,因為他們通常需要「乾淨」的資料,並儲存在可查詢的環境 (例如資料湖泊湖倉資料倉儲),而不是直接與原始 Kafka 串流互動。

就資料科學和 AI 而言,Kafka 的價值主要在於資料存取。Kafka 是應用程式記錄和資料庫變更的完整來源。雖然 Kafka 以速度快聞名,但對大多數資料科學工作流程來說,資料來源的廣度和可靠性遠比低延遲傳送更重要。

Kafka 對 AI 系統的重要性

AI 系統在推論期間會使用高品質的訓練資料和脈絡。Kafka 通常是收集訓練資料的關鍵,可從各種來源系統 (包括互動記錄和資料庫變更) 收集資料。許多組織會將其做為事件匯流排,匯總多項服務的事件,或單純做為應用程式記錄的暫存位置。因此,Kafka 自然成為生成訓練資料集的單一來源。由於 Kafka 會依序儲存記錄,因此特別適合負責處理序列的 LLM。

Kafka 是許多線上推論工作不可或缺的工具。應用程式或代理能否提供相關的產品推薦、搜尋回覆或提示詞,取決於是否掌握使用者的最新背景資訊。Kafka 支援低延遲且可擴充的通訊,因此推論系統能在數十毫秒內,使用最新事件更新使用者的背景資訊。舉例來說,如果使用者在音樂應用程式中拒絕最新的歌曲推薦,或是金融應用程式中的股票價格變動,推薦服務可以立即生成更好的建議,並將這些輸入內容納入考量。

Kafka 的好處有哪些?

開放原始碼生態系統

Kafka 的原始碼可免費取得,全球社群也提供各種連接器、監控工具和外掛程式。

擴充性與速度

Kafka 是分散式平台,可將處理程序分散在多台機器之間進行,因此能調度資源來處理大量資料,同時維持毫秒以下的延遲時間。

高可用性

Kafka 採用分散式架構,即使個別機器故障,仍能維持可靠性,因此適合用於對業務至關重要的應用程式

Kafka 即代管服務

眾所皆知,設定地端部署 Kafka 叢集非常困難,團隊必須佈建機器、管理安全性及處理例行修補作業。有了代管服務,供應商會負責處理基礎架構,讓您專心建構應用程式。這對資料科學團隊特別有益,因為他們可以專注於模型開發和深入分析,不必費心管理基礎架構。

透過 Google Cloud 解決業務難題

新客戶可以獲得價值 $300 美元的免費抵免額,盡情試用各項 Google Cloud 功能。
聯絡 Google Cloud 銷售專員,深入探討公司面臨的獨特挑戰。

Kafka 如何運作?

Kafka 透過四項核心功能實現串流事件處理:

  1. 產生或寫入資料:來源可將記錄、事件、記錄或其他資料寫入主題 (資料事件群組)。
  2. 儲存:Apache Kafka 提供耐用且可用性高的儲存空間,通常是事件導向架構的可靠「單一事實來源」。這項功能特別適合用來回顧歷史事件,而非單純即時回應事件。Kafka 會將記錄儲存在可重複讀取和重新讀取的有序記錄中,因此團隊能以完整脈絡在分析系統中重建資料,或調查過去的交易
  3. 取用:應用程式可以讀取一或多個主題,處理產生的資料串流。
  4. 連結:透過可重複使用的連接器,將 Kafka 連結至 BigQuery 和 Dataproc 等現有系統。

其他資源

  • BigQuery Studio 簡介:資料從業人員可透過這個統合式工作區,運用 SQL 和 Python 筆記本加快「從資料到 AI」工作流程
  • Iceberg 資料表簡介:可建立代管 Iceberg 資料表,讓 Spark 等開放原始碼引擎能以高效能查詢串流資料

後續行動

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

Google Cloud