Apache Pinot 是一種即時分散式 OLAP 資料存儲,旨在提供低延遲的可擴展即時分析。它可以從批次資料來源(例如 Hadoop HDFS、Amazon S3、Azure ADLS、Google Cloud Storage)以及串流資料來源(例如 Apache Kafka)中攝取。
Pinot 由 LinkedIn 和 Uber 的工程師構建,旨在無上限地擴展和擴展。根據叢集的大小和預期的每秒查詢次數 (QPS) 閾值,效能始終保持不變。
有關入門指南、部署方法、教學課程等,請造訪我們的專案文件:https://docs.pinot.apache.org。
Pinot 最初是在 LinkedIn 建立的,旨在為豐富的互動式即時分析應用程式提供支持,例如「誰查看了個人資料」、「公司分析」、「人才洞察」等。 UberEats Restaurant Manager 是面向客戶的分析應用程式的另一個範例。在 LinkedIn,Pinot 為 50 多個面向用戶的產品提供支持,每秒攝取數百萬個事件,並以毫秒延遲每秒處理 10 萬多個查詢。
快速查詢:以數十毫秒的 P90 延遲過濾和聚合 PB 資料集,速度足以在 UI 中互動式返回即時結果。
高並發性:透過使用者導向的應用程式直接查詢 Pinot,它每秒可以服務數十萬個並發查詢。
SQL 查詢介面:可透過內建查詢編輯器和 REST API 存取高度標準的 SQL 查詢介面。
多功能連接:在 PB 資料集上執行任意事實/維度和事實/事實連接。
面向列:面向列的資料庫,具有各種壓縮方案,例如遊程長度、固定位長度。
可插式索引:可插式索引技術,包括時間戳記、倒排、星星樹、布隆過濾器、範圍、文字、JSON 和地理空間選項。
串流和批次攝取:從 Apache Kafka、Apache Pulsar 和 AWS Kinesis 即時攝取。從 Hadoop、Spark、AWS S3 等批量攝取。將批次和串流來源合併到一個表格中進行查詢。
即時攝取期間更新插入:大規模更新資料並保持一致性
內建多租戶:在隔離的邏輯命名空間中管理和保護數據,以實現雲端友善的資源管理。
專為規模而打造:Pinot 具有水平可擴充性和容錯能力,可適應跨儲存和吞吐量範圍的工作負載。
Kubernetes 上的雲端原生:Helm Chart 提供了水平可擴展且容錯的叢集部署,易於使用 Kubernetes 進行管理。
Pinot 旨在對大量資料和事件執行低延遲的即時 OLAP 查詢。除了即時串流攝取之外,Pinot 還支援具有相同低延遲保證的批次用例。它適用於需要對不可變資料進行快速分析(例如聚合)的環境,可能還需要即時資料攝取。 Pinot 非常適合查詢具有大量維度和指標的時間序列資料。
查詢範例:
SELECT sum (clicks), sum (impressions) FROM AdAnalyticsTable
WHERE
((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856 )) AND
accountId IN ( 123456789 )
GROUP BY
daysSinceEpoch TOP 100
想為 apache/pinot 做出貢獻嗎? ?
想加入 Apache Pinot 開源提交者的行列嗎?然後查看貢獻指南,以了解如何參與程式碼。
如果您有錯誤或對新功能有想法,請在開啟新問題之前瀏覽未解決的問題以了解我們已經在處理哪些問題。
我們也標記了新貢獻者可以解決的一些初學者問題。
# Clone a repo
$ git clone https://github.com/apache/pinot.git
$ cd pinot
# Build Pinot
# -Pbin-dist is required to build the binary distribution
# -Pbuild-shaded-jar is required to build the shaded jar, which is necessary for some features like spark connectors
$ mvn clean install -DskipTests -Pbin-dist -Pbuild-shaded-jar
# Run the Quick Demo
$ cd build/
$ bin/quick-start-batch.sh
對於 UI 開發設置,請參閱此文件。
正常的 Pinot 建置是使用mvn clean install
指令完成的。
但是,此命令可能需要很長時間才能運行。
為了更快地構建,建議使用mvn verify -Ppinot-fastdev
,它會停用一些開發實際上不需要的插件。
更詳細的說明可以在文件中的快速演示部分找到。
請參閱我們的專案文件中的在 Kubernetes 上執行 Pinot。 Pinot 還提供 Kubernetes 與互動式查詢引擎 Trino Presto 和資料視覺化工具 Apache Superset 的整合。
查看 Pinot 文件以取得 Pinot 功能的完整描述。
Apache Pinot 遵循 Apache 許可證,版本 2.0