Apache Pinot 簡介
一、簡介
Apache Pinot最初由 LinkedIn 開發,是一種即時分散式 OLAP(線上分析處理)資料存儲,旨在為分析查詢提供低延遲和高吞吐量。在本文中,我們將探討 Apache Pinot 的主要功能和架構,並學習如何與之互動。
2. 什麼是阿帕契皮諾?
Apache Pinot 是一種即時分散式 OLAP(線上分析處理)資料存儲,旨在為分析查詢提供低延遲和高吞吐量。它針對處理大規模時間序列資料進行了最佳化,通常用於事件流、日誌和其他類型的即時資料的分析。以下是其一些主要功能:
- 即時和大量資料攝取:Pinot 可以從 Kafka 等流即時攝取數據,也可以從 Hadoop 或 S3 等來源批量攝取資料。
- 低延遲查詢:Pinot 旨在以亞秒級回應時間處理複雜的 OLAP 查詢。
- 可擴展性:它可以透過添加更多伺服器來水平擴展以處理增加的負載。
- 可插拔索引:支援倒排索引、排序索引、範圍索引等各種索引技術,以最佳化查詢效能。
- 模式靈活性:允許在不停機的情況下不斷發展模式。
- 支援類SQL查詢語言:提供類SQL語言來查詢數據,方便熟悉SQL的使用者使用。
3. 架構
Apache Pinot 由幾個關鍵元件組成,這些元件協同工作以提供即時分散式 OLAP 功能。這些組件包括:
- 叢集:它收集攝取、儲存和處理資料所需的軟體進程和硬體資源。這些進程包括controller、zookeeper、server、broker和minion。 Pinot 使用Apache Zookeeper作為分散式元資料存儲,並使用Apache Helix進行叢集管理。
- 控制器:控制器管理叢集並協調諸如段創建、路由和資料管理等任務。它還處理配置管理和叢集元資料。
- Broker :代理元件負責查詢路由。它接收來自客戶端的查詢並將它們路由到保存相關資料段的適當伺服器。然後經紀人匯總結果並將結果傳回給客戶端。
- 伺服器:伺服器儲存和管理資料段、處理查詢並將結果傳回給代理程式。它負責資料的即時攝取和索引。
- Minion :minion 元件處理後台任務,例如資料壓縮、段管理和離線段產生。它將這些任務從伺服器上卸載,以確保高效的資源利用。
- 租戶:租戶支援多租戶,允許使用者或應用程式共享集群,同時保持資料和資源隔離,確保公平使用和效能隔離。
- Segment :Pinot 將資料儲存在段中,即包含資料集子集的不可變檔案。每個段都針對快速讀取進行了最佳化,利用列式儲存等技術來提高查詢效能。 Pinot 在多個節點之間複製段,以確保資料可用性和容錯能力。
當我們提交查詢時,代理節點將其分發到包含相關資料段的適當伺服器節點。伺服器節點處理查詢並將結果傳回代理節點,代理節點聚合結果並將其傳送回客戶端。這種分散式查詢處理確保有效率、快速地執行查詢。
4. 安裝黑皮諾
我們可以使用 Docker、Kubernetes 或直接在本機上安裝 Pinot。官方文件提供了各種安裝方法的詳細說明。我們將使用 Docker 進行安裝。
要透過 Docker 安裝 Pinot,系統需要滿足以下條件:
- 機器上必須安裝Docker 。
- docker 記憶體必須至少配置為 4 個 CPU、16GM 記憶體、4GB 交換空間和 60 GB 磁碟映像大小。
設定並執行 Docker 後,在終端機中執行以下命令以取得最新映像:
docker pull apachepinot/pinot:latest
5. 與黑皮諾一起工作
現在我們已經下載了 docker 映像,讓我們設定叢集。 Pinot 提供快速啟動命令,可在單一進程中啟動其元件的實例並匯入預先建置的資料集。
讓我們採用 QuickStart 中的一個範例,該範例啟動所有元件並建立一個名為棒球統計的表。
它啟動一個獨立的資料攝取作業,從指定的 CSV 資料檔案建立一個分段,用於 baseballStats
表並將該段上傳到 Pinot 控制器:
docker run \
-p 2123:2123 \
-p 9000:9000 \
-p 8000:8000 \
-p 7050:7050 \
-p 6000:6000 \
apachepinot/pinot:1.1.0 QuickStart \
-type batch
在上面的命令中,端口2123是Zookeeper端口,9000是Pinot Controller端口,8000映射到Broker端口,7050是伺服器端口,6000是Minion端口。
我們可以按照此處提到的步驟手動設定叢集。若要驗證設定是否正確,請造訪 Pinot 控制器: http://localhost:9000.
下圖提供了叢集的概述,顯示了其整體運行狀況和狀態,以及有關連接實例的詳細信息,包括控制器、代理、伺服器和 minions:
我們可以使用查詢控制台與已建立的表進行互動。此介面列出了所有可用的表,並包括用於編寫和執行查詢的查詢編輯器。執行後同一視窗顯示查詢結果,如下所示:
六,結論
在本教程中,我們介紹了 Apache Pinot 的基礎知識並探索了它的架構。 Apache Pinot 是領先的即時分析資料存儲,使組織能夠立即處理和分析大量資料。其可擴展的架構、低延遲查詢和多功能性使其成為企業的首選。
隨著對即時洞察的需求不斷增長,Apache Pinot 推動數位領域的創新和轉型。