從 Apache Kafka 擷取資料到 Google Cloud Pub/Sub 的範例

在這篇部落格文章中,我們展示了一個範例,建立一個管道從Apache Kafka 中的單一主題或多個主題讀取資料,並將資料寫入Google Pub/Sub 中的主題。此範例提供了程式碼範例來實作簡單但功能強大的管道,並提供了一個您可以直接「隨插即用」的現成解決方案。

這個端對端範例包含在 Apache Beam 2.27 版本中,可以在這裡下載。

我們希望您會發現這個範例對於在 Kafka 和 Pub/Sub 之間設定資料管道很有用。

範例規格

支援的資料格式

支援的輸入來源設定

  • 單個或多個 Apache Kafka bootstrap 伺服器
  • 透過純文字或 SSL 連線的 Apache Kafka SASL/SCRAM 驗證
  • 密鑰儲存服務 HashiCorp Vault

支援的目的地設定

  • 單一 Google Pub/Sub 主題

在簡單的情境中,此範例將建立一個 Apache Beam 管道,該管道將從具有來源主題的來源 Kafka 伺服器讀取訊息,並將文字訊息串流到指定的 Pub/Sub 目標主題。其他情境可能需要 Kafka SASL/SCRAM 驗證,這可以透過純文字或 SSL 加密連線執行。此範例支援使用單個 Kafka 使用者帳戶在提供的來源 Kafka 伺服器和主題中進行驗證。為了支援透過 SSL 的 SASL 驗證,此範例將需要 SSL 憑證位置,並存取具有 Kafka 使用者名稱和密碼的密鑰儲存服務,目前支援 HashiCorp Vault。

我可以在哪裡執行此範例?

有兩種執行管道的方式。

  1. 在本機。這種方式有很多選項 - 直接從您的 IntelliJ 執行,或建立 .jar 檔案並在終端機中執行,或使用您喜歡的執行 Beam 管道的方法。
  2. Google Cloud 中使用 Google Cloud Dataflow
    • 使用 gcloud 命令列工具,您可以從此 Beam 範例建立一個 Flex 範本,並在 Google Cloud Platform 中執行它。這需要對範例進行相應的修改,才能將其轉換為範本。
    • 此範例以 Flex 範本版本的形式存在於 Google Cloud Dataflow 範本管道儲存庫中,無需額外修改程式碼即可執行。

下一步

試試這個Beam 端對端範例。如果您是 Beam 的新手,我們希望這個範例能讓您更了解管道是如何運作和看起來的。如果您已經在使用 Beam,我們希望其中的一些程式碼範例對您的使用案例有用。

如果您遇到任何問題,請告訴我們