生態周邊|StreamNative 開源 Delta Lake Sink Connector for Apache Pulsar

語言: CN / TW / HK

Pulsar Summit Asia 2022 演講議題徵集啟動

點選圖片 馬上報名

本文翻譯自 StreamNative 部落格《Announcing the Delta Lake Sink Connector for Apache Pulsar》,作者陳航,StreamNative 主管工程師、Apache Pulsar PMC 成員。

Apache Pulsar™ 和 Lakehouse 這兩種高可用且可擴充套件的技術天然適配,可以廣泛地應用於各種資料場景。StreamNative 正式宣佈開源 Apache Pulsar + Delta Lake 聯結器,為實時系統和 Lakehouse 系統提供 API。Pulsar + Delta Lake 聯結器能夠為資料分析和 ML/AI 構建簡單、開放和多雲的實時工程解決方案。

將 Lakehouse 與 Pulsar 技術相結合

Lakehouse 技術使應用資料和事件易於處理,能夠幫助企業將資料進行可操作分析。Lakehouse 將資料湖功能與事務、高階資料管理實用程式相結合,使用者可以將其與現有系統整合,在一個平臺中支援傳統的 BI、批處理和 AI/ML 等場景。然而,Lakehouse 需要能夠實時攝取和啟用資料。

Pulsar 是一個實時資料處理平臺,旨在解決複雜的訊息傳遞工作負載並簡化端到端資料管道的構建流程。它提供開箱即用的聯結器與無伺服器功能,且支援 Python、Java 和 Go 等多種語言,非常適合 Lakehouse 技術。

StreamNative 很高興地宣佈開源 Delta Lake 聯結器將這兩種強大的技術結合。Delta Lake 聯結器能夠解決最小的資料延遲問題,並通過無縫的單一 API 輕鬆地將實時計算結果交付給 Lakehouse。StreamNative 旨在打造全面的 Pulsar 生態系統以作為通用且可持續的事件計算中心,實現更高的生產力和創新,該聯結器便是其中的重要一環。

Delta Lake Sink Connector 簡介

Delta Lake Sink Connector [1] 是 Pulsar IO 聯結器,它從 Apache Pulsar 主題中提取資料並將資料持久化到 Delta Lake。

Delta Lake Sink Connector 的誕生

在過去的 5 年中,流資料的興起和對降低資料延遲的需求對資料湖的要求達到了極致。因此,Lakehouse 架構(由 Databricks 提出,並通過 Delta Lake、Apache Hudi 和 Apache Iceberg 等技術實現)已得到迅速採用。Lakehouse 架構支援資料流式攝取,提供處理 Schema 和 Schema 演變的多種工具,改進了元資料管理和開放標準,以簡化跨資料處理系統的整合。

Apache Pulsar 是一個用於實時工作負載的分散式開源 pub-sub 訊息流平臺,與 Lakehouse 架構天然搭配。Apache Pulsar 提供了一個統一的平臺,可以在一個底層系統中對資料進行佇列、分析和傳輸。因此,將 Apache Pulsar 與 Lakehouse 整合可以簡化資料生命週期管理和資料分析。

StreamNative 構建並開源了 Apache Pulsar 的 Delta Lake Sink Connector。Delta Lake 使用者可連線來自 Pulsar 的訊息流並使用更多強大的功能,同時避免當系統或隱私要求之間存在內在差異時出現的連線問題。

該聯結器通過與 Pulsar 完全整合(包括其無伺服器功能、單條訊息處理和事件流處理)來解決這個問題。它提供了一種低程式碼解決方案,具有多種開箱即用的功能,例如多租戶、跨地域複製、直連到終端使用者的移動或物聯網客戶端的協議等。

為何使用 Delta Lake Sink Connector

Delta Lake 和 Apache Pulsar 之間的整合有三個關鍵優勢:

  • • 簡單:無需任何使用者程式碼即可將資料從 Apache Pulsar 快速移動到 Delta Lake。

  • • 高效:減少配置資料層的時間。使用者有更多時間來通過有效的方式從實時資料中挖掘最大的商業價值。

  • • 靈活:支援不同的執行模式(獨立或分散式)。使用者可以構建響應式資料管道來實時滿足業務和運營需求。

開始使用 Delta Lake Sink Connector

準備工作

首先,執行 Apache Pulsar 叢集。

  • • 執行 Pulsar 服務。通過執行 $PULSAR_HOME/bin/pulsar Standalone ,可以快速執行 Pulsar 叢集。更多資訊可參閱 文件 [2]

  • • 設定 Delta Lake Sink Connector。從 Releases [3] 頁面下載聯結器,然後將其移動到  $PULSAR_HOME/connectors

Apache Pulsar 提供了 Pulsar IO [4] 特性來執行聯結器。按照以下步驟啟動並執行聯結器。

配置聯結器

  1. 1. 建立一個名為 delta-lake-sink-config.json 的配置檔案,將 Apache Pulsar 的  public/default/test-delta-pulsar 主題訊息傳送到位置為  s3a://test-dev-us-west-2/lakehouse/delta_sink 的 Delta Lake 表。

 {
"tenant":"public",
"namespace":"default",
"name":"delta_sink",
"parallelism":1,
"inputs": [
"test-delta-pulsar"
],
"archive": "connectors/pulsar-io-lakehouse-{{connector:version}}.nar",
"processingGuarantees":"EFFECTIVELY_ONCE",
"configs":{
"type":"delta",
"maxCommitInterval":120,
"maxRecordsPerCommit":10000000,
"tablePath": "s3a://test-dev-us-west-2/lakehouse/delta_sink",
"hadoop.fs.s3a.aws.credentials.provider": "com.amazonaws.auth.DefaultAWSCredentialsProviderChain"
}
}
  1. 2. 執行聯結器:

$PULSAR_HOME/bin/pulsar-admin sinks localrun --sink-config-file /path/to/delta-lake-sink-config.json

當你向 Apache Pulsar 的 public/default/test-delta-pulsar 主題傳送訊息時,此訊息將持久儲存到 Delta Lake 表中,位置為  s3a://test-dev-us-west-2 /lakehouse/delta_sink

更多資訊可參閱 StreamNative Hub [5] 文件與演示視訊 [6]

參與專案

  • 下載 [7] 並試用聯結器。參考  ReadMe 檔案 [8] 執行聯結器。

  • • Delta Lake Sink Connector 原始碼託管在 StreamNative GitHub 程式碼倉庫中。如果你在使用過程中發現問題或者提出建議,歡迎 提 issue [9] 討論或者提 PR 參與貢獻。你也可以在 論壇中 [10] 與我們討論。

引用連結

[1] Delta Lake Sink Connector:  https://hub.streamnative.io/connectors/lakehouse-sink/2.9.2/

[2] 文件:  https://pulsar.apache.org/docs/standalone/

[3] Releases:  https://github.com/streamnative/pulsar-io-lakehouse

[4] Pulsar IO:  https://pulsar.apache.org/docs/io-overview

[5] StreamNative Hub:  https://hub.streamnative.io/connectors/lakehouse-sink/2.9.2

[6] 文件與演示視訊:  https://github.com/streamnative/pulsar-io-lakehouse/blob/master/docs/delta-lake-demo.md

[7] 下載:  https://github.com/streamnative/pulsar-io-lakehouse/releases

[8] ReadMe 檔案:  https://github.com/streamnative/pulsar-io-lakehouse/blob/master/docs/lakehouse-sink.md

[9] 提 issue:  https://github.com/streamnative/pulsar-io-lakehouse/issues/new/choose

[10] 論壇中:  https://forum.streamnative.io

「其他文章」