PinotOLAP 存儲(chǔ)和分析系統(tǒng)
Pinot 是一個(gè)實(shí)時(shí)分布式的 OLAP 數(shù)據(jù)存儲(chǔ)和分析系統(tǒng)。LinkedIn 使用它實(shí)現(xiàn)低延遲可伸縮的實(shí)時(shí)分析。Pinot 從離線(xiàn)數(shù)據(jù)源(包括 Hadoop 和各類(lèi)文件)和在線(xiàn)數(shù)據(jù)源(如 Kafka)中攫取數(shù)據(jù)進(jìn)行分析。Pinot 被設(shè)計(jì)是可以進(jìn)行水平擴(kuò)展的。
Pinot 特別適合這樣的數(shù)據(jù)分析場(chǎng)景:分析模型固定,數(shù)據(jù)只追加以及低延遲,以及分析結(jié)果可查詢(xún)。
關(guān)鍵特性:
面向列的數(shù)據(jù)庫(kù),提供多種壓縮模式,如運(yùn)行長(zhǎng)度、固定比特長(zhǎng)度
可插入式的索引技術(shù),包括可排序索引、Bitmap 索引和反向索引
可根據(jù)查詢(xún)和段元數(shù)據(jù)對(duì)查詢(xún)和執(zhí)行進(jìn)行優(yōu)化
近乎實(shí)時(shí)的從 Kafka 獲取數(shù)據(jù),以及批量從 Hadoop 獲取數(shù)據(jù)
類(lèi) SQL 的語(yǔ)言支持查詢(xún)、聚合、過(guò)濾、分組、排序和去重
支持多值字段
水平伸縮以及容錯(cuò)
Pinot 非常使用用來(lái)查詢(xún)時(shí)許數(shù)據(jù)以及大維度的數(shù)組。
Pinot 的組件架構(gòu):
Pinot 核心概念:
示例查詢(xún):
/*Total number of documents in the table*/
select count(*) from baseballStats limit 0
/*Top 5 run scorers of all time*/
select sum('runs') from baseballStats group by playerName top 5 limit 0
/*Top 5 run scorers of the year 2000*/
select sum('runs') from baseballStats where yearID=2000 group by playerName top 5 limit 0
/*Top 10 run scorers after 2000*/
select sum('runs') from baseballStats where yearID>=2000 group by playerName limit 0
/*Select playerName,runs,homeRuns for 10 records from the table and order them by yearID*/
select playerName,runs,homeRuns from baseballStats order by yearID limit 1評(píng)論
圖片
表情
