首页  

Apache Pinot 分布式实时分析和存储系统     所属分类 bigdata 浏览量 197
Apache Pinot 实时分布式 OLAP 数据存储,高吞吐量和低延迟实时分析
2013 年由 LinkedIn 创建,2015 年开源,于 2018 年 10 月进入 Apache 孵化器,2021年08月02日正式毕业成为 Apache 顶级项目

从 Kafka HDFS 等拉取数据  构建 即时查询
核心是列式存储,智能索引和预聚合技术以实现低延迟 ,适合面向用户的实时分析

主要特性

面向列的数据库
具有各种压缩方案,如 Run Length,Fixed Bit Length

可插拔索引技术
排序索引(Sorted Index),位图索引(Bitmap Index)
StarTree 索引,Bloom 过滤器,范围索引(Range Index)
倒排索引(Inverted Index)文本搜索索引(Lucence/FST)
Json 索引,地理空间索引(Geospatial Index )

具有基于查询和 segment 元数据优化查询/执行计划的能力
类似 sql 的查询语言,支持对数据进行选择、聚合、过滤、分组、排序和 distinct 查询
使用 Presto 实现了 ANSI SQL 查询语言,支持 JOIN 等操作
支持多值字段
支持水平扩展和容错


设计理念
LinkedIn 和 Uber 工程师共同设计
可根据集群中的节点数量来扩展查询性能

高可用性 没有单点故障 
水平可伸缩 
高吞吐低延  
迟段分配策略(segment assignment strategy)、路由策略、星树索引(star-tree indexing)
不可变数据
动态配置更改  在不影响查询可用性或性能的情况下执行添加新表、扩展集群、摄取数据、修改索引配置和重新平衡等操作

Controller, Broker, Server,  Minion 等组件


使用 Apache Helix 进行集群管理
Helix 作为代理(agent)嵌入到不同的组件中,使用  Zookeeper 协调和维护整个集群状态和运行状况
所有的 Pinot servers 和 brokers 都由 Helix 管理

Helix  通用的集群管理框架,管理分布式系统中的分区和副本
具有推和拉通知功能,将集群的状态驱动到理想的配置


Controller
集群整体状态和运行状况的驱动
Helix 的参与者(participant)和旁观者(spectator),驱动其他组件的状态
通常是在 Zookeeper 之后启动的第一个组件
启动 Controller 两个参数  Zookeeper地址和集群名称
如果集群不存在,Controller 自动通过 Helix 创建一个集群


Broker
将给定的查询路由到适当的 server 实例
收集并合并来自所有 server 的响应
接收 SQL 查询并以 JSON 格式返回 

Server
管理 segments,处理查询
实时 server 和 离线 server
server 的职责取决于表分配策略(table assignment strategy)


Minion
可选组件 ,从 Pinot 集群中清除数据

上一篇     下一篇
spark map算子各种写法

idea maven 项目 scala代码 不会自动编译

spark3 例子

Presto简介

spark core RDD

spark RDD saveAsTextFile