猿创征文|OLAP之apache pinot初体验

news/2024/4/30 10:30:57/文章来源:https://blog.csdn.net/chimchim66/article/details/126639633

目录

一、背景

二、介绍

三、特征

四、价值

五、参考组件

组件清单介绍:

1.Controller

2.Server

3.Broker

4.Minion (optional)

六、数据采集

批量数据流程

实时数据流程

查询处理流程


一、背景

最近在熟悉公司内部的埋点采集,发现数据架构最后是存放到apache pinot库的,因为之前从来没见过,所以有了本文的学习文档。

二、介绍

废话不多说了,来看看apache pinot到底是干什么用的吧

官方介绍

Apache Pinot, a real-time distributed OLAP datastore, purpose-built for low-latency high throughput analytics, perfect for user-facing analytical workloads.

Apache Pinot是一个实时分布式OLAP数据存储,专为低延迟高吞吐量分析而构建,非常适合面向用户的分析工作负载。

Pinot是一个实时分布式OLAP数据存储,专为提供超低延迟分析而构建,即使在极高的吞吐量下也是如此。它可以直接从流数据源(如Apache Kafka和Amazon Kinesis)摄取,并使事件可以立即查询。它还可以从Hadoop HDFS、Amazon S3、Azure ADLS和Google Cloud Storage等批处理数据源中摄取。

系统的核心是一个柱状存储,具有几种智能索引和预聚合技术,可实现低延迟。这使得Pinot最适合面向用户的实时分析。与此同时,Pinot也是其他分析用例的绝佳选择,例如内部仪表板、异常检测和临时数据探索。

官网地址:

Introduction - Apache Pinot Docs

三、特征

1.一个面向列的数据库,具有各种压缩方案,如运行长度、固定位长度

2.插件化索引技术

Sorted Index, Bitmap Index, Inverted Index, StarTree Index, Bloom Filter, Range Index, Text Search Index(Lucence/FST), Json Index, Geospatial Index

排序索引、位图索引、倒置索引、StarTree索引、Bloom过滤器、范围索引、文本搜索索引(Lucence/FST)、Json索引、地理空间索引

3.能够根据查询和分段元数据优化查询/执行计划

4.非常快且可以近实时接入(支持离线以及实时处理)

从Kafka、Kinesis等流中几乎实时摄取,以及从Hadoop、S3、Azure、GCS等来源批量摄取

5.类似SQL的语言,支持对数据的选择、聚合、过滤、分组、排序、不同的查询

6.支持多值字段

7.水平可扩展(基于了apache helix 框架)

8.容错

9.异常分析,只能报警,主要基于了thirdeye

10.基于prestodb,trino,进行多表查询(主要是当前不支持,只能基于此处理,当然dremio也是一种选择,但是肯定没有官方推荐的好)

四、价值

五、参考组件

Helix是一个集群管理解决方案,由LinkedIn的Pinot作者设计和创建。Helix将比诺集群的状态从瞬态驱动到理想状态,充当容错分布式状态存储,保证一致性。Helix作为在控制器、代理和服务器中运行的代理嵌入,并且不存在于独立和水平缩放的组件中。

组件清单介绍:

1.Controller

控制器是推动集群一致性和路由的核心。控制器作为独立组件(容器)水平缩放,并具有集群中所有其他组件状态的可见性。控制器对系统中的状态更改做出响应和响应,并安排表、段或节点的资源分配。如前所述,Helix作为代理嵌入控制器中,该代理负责观察和驱动其他组件订阅的状态变化。除了集群管理、资源分配和调度外,控制器还是用于管理皮诺部署的REST API的HTTP网关。还提供了一个基于Web的查询控制台,供运营商快速轻松地运行SQL/PQL查询。

2.Server

经纪人接收来自客户端的查询,并在返回统一响应之前将其执行路由到一个或多个Pinot服务器。

3.Broker

服务器托管段(碎片),在多个节点之间调度和分配,并在分配给租户时路由(默认情况下有一个单一租户)。服务器是独立容器,可以水平缩放,并通过控制器驱动的状态更改由Helix通知。服务器可以是实时服务器,也可以是离线服务器。实时和离线服务器的资源使用要求非常不同,实时服务器不断消耗来自外部系统(如Kafka主题)的新消息,这些消息被摄取并分配给租户的片段。因此,资源隔离可用于对摄取然后通过代理查询的高吞吐量实时数据流进行优先排序。

4.Minion (optional)

Pinot minion是一个可选组件,可用于运行后台任务,例如GDPR(一般数据保护条例)的“清除”。由于Pinot是一个不可变的聚合存储,因此需要根据请求清除包含敏感私人数据的记录。Minion为此提供了一个符合GDPR的解决方案,同时优化了Pinot细分市场,并构建了额外的指数,以保证在数据删除可能性的情况下的性能。还可以编写定期运行的自定义任务。虽然可以直接在皮诺服务器上执行这些任务,但有一个单独的进程(Minion)可以减少查询延迟的总体退化,因为段受到可变写入的影响。 

六、数据采集

在Pinot中,逻辑表被建模为两种类型的物理表之一:离线表、实时表

  • 实时表的保留期更短,并根据摄取率扩展查询性能。

  • 离线表根据存储数据的大小具有更大的保留和缩放性能。

批量数据流程

批处理模式下,数据通过摄取作业摄取到Pinot。摄取作业将原始数据源(如CSV文件)转换为Segment段。一旦为导入的数据生成段,摄取作业将它们存储到集群的段存储器(也称为深度存储)并通知Controller控制器。通知被处理,结果是控制器上的螺旋代理更新了Zookeeper中的理想状态配置。然后,Helix将通知离线Server服务器有可用的新Segment。根据控制器的通知,离线服务器直接从集群的细分商店下载新创建的段。集群的代理监视Helix中的状态变化,检测新段并将其添加到要查询的段列表中(段到服务器路由表)。

实时数据流程

在表创建时,控制器在Zookeeper中为消费段创建一个新条目。Helix注意到新段并通知实时服务器实时服务器开始消耗来自流媒体源的数据。代理监视更改,检测新段并将其添加到要查询的段列表中(段到服务器路由表)。每当段完成(即满)时,实时服务器都会通知控制器,控制器检查所有副本,并选择获胜者将段提交到。获胜者提交该细分市场并将其上传到集群的细分市场商店,将细分市场的状态从“消费”更新为“在线”。然后,控制器准备处于“消耗”状态的新段。 

查询处理流程

查询由Server经纪人接收——Server经纪人根据分段到服务器的路由表检查请求——将请求分散在实时和离线服务器之间。然后,两个表通过过滤和聚合查询数据来处理请求,然后返回给Server经纪人。最后,Server经纪人收集查询响应的所有部分,并回复客户端并提供结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_4231.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NK-RTU980 CAP

BSP包中有两个CAP相关的例程,两个例程的区别为获取的图像数据的存储格式不同,planar例程是先存储所有像素点的Y,再存U,再存V。packed例程是每个像素的YVU连续存储。 一、硬件电路 处理器为NUC980DR61Y,封装为64pin&a…

python--转换wrf输出的风场数据为网页可视化的json格式

前言: 一般网页可视化风场中的数据都是json格式,而如果我们希望将wrf模式模拟输出的风场数据在网页中进行展示,这就需要先将wrfoutput数据转换为网页可以识别的json格式。 这里主要需要用到json库,主要的实现方式就是将读取的风场…

微信网课答案公众号题库接口使用

微信网课答案公众号题库接口使用 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台&…

亚马逊审核 美国站安全带ASTMF1772安全绳攀岩绳EN892认证流程

1 登山锁扣定义 登山用锁扣是一种带弹簧门的金属环状物,用于在攀岩和登山时快速可逆地连接各部件,是安全系统关键的一部分。 登山用锁扣可用于将绳索固定到设备上,或者将两件或多件设备连接在一起。它们通常由铝或钢制成。这种锁扣具有不同…

ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜

如何解决ps2021 新版 AI神经滤镜不能用? 网上买正版,更新下就好了,盗版的都会有各种这样的问题。ps2021神经AI滤镜是需简要上传云端,由Adobe官方服务器人工智能运算的。 Ps2021版本新增了Ai神经元滤镜,它不是与软件一起安装的&…

谣言粉碎机?Python验证股市操盘口诀

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 经常炒股的朋友,应该都听说过这段操盘口诀: 早上大跌要买,早上大涨要卖 下午大涨不追,下午大跌次日买 早上大跌不割,不涨不跌睡觉 我们随手百度,也能发现各大主流论坛,充斥着该口…

Spring入门——Eclipse实现HelloWorld程序

前言 疫情影响又延期开学,只能在家上上网课划划水,刚做完spring入门的一个小作业,来做个总结分享,我也是个刚入门的小白,还望大佬们指点。 步入主题 环境 eclipse/spring-tool-suite-3 jdk1.8.0_221 另外&#xff0…

Linux :mysql数据库自动备份

Linux :mysql数据库自动备份前言使用shell脚本进行数据库的定时备份确定备份数据库备份shell脚本定时shell脚本前言 当项目发布到服务器上后,接下来考虑到就是如何做好数据库的数据备份。为的就是防止服务器突然异常崩溃,而导致的数据丢失问…

使用上下游思维实现系统解耦

在软件开发领域,解耦这个词相信大家都不陌生。在面向对象的语境下,我们会应用SOLID原则来构建高内聚低耦合的应用,实现模块间的解耦;在复杂业务系统分析和建模时,会通过DDD的战略和战术设计帮助划分领域并实现分布式系…

Java毕业设计-校园活动赞助与宣传管理系统

🔥作者主页:疯狂行者🔥 💖✌java领域优质创作者,专注于Java技术领域技术交流✌💖 💖文末获取源码💖 精彩专栏推荐订阅:在 下方专栏👇🏻👇&#x1…

(分布式缓存)Redis持久化

一、RDB持久化 首先需要在Linux系统中安装一个Redis,如果尚未安装的同学,可以参考下面链接教程安装先: (73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客 修改配置文件 创建一个数据 因为设置了只要5秒内有一次修改就会触发一次备份数据&am…

最全 Burp Suite 最新付费稳定版安装教程

介绍 Burp Suite是web应用程序渗透测试集成平台。从应用程序攻击表面的最初映射和分析,到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作。 平台中所有工具共享同一robust框架,以便统一处理HTTP请求、持久性、认证、上游代理、日志记录、报警和可扩…

《QDebug 2022年8月》

一、Qt Widgets 问题交流 1.QWidget鼠标事件穿透 对于一些透明或者半透明的QWidget,可能需要点击其下方的按钮或其他组件,但是QWidget本身是会接收这些鼠标事件的,需要一些额外的处理。下面是百度到的一些方法: 方式A.设置setA…

Nacos下载和安装-windows

Nacos官网:https://nacos.io/zh-cn/ Nacos官方文档:https://nacos.io/zh-cn/docs/quick-start.html 一、下载 进入nacos官网,选择相应版本下载 github上nacos的zip资源,下载速度奇慢问题。 百度网盘:https://pan.b…

云原生游戏第 2 讲:OpenKruiseGame 设计理念详解

后疫情时代,游戏行业步入高质量发展期,游戏云原生化势在必行。不久前,针对游戏行业云原生落地的难点、游戏玩家服容器化的困境等问题,阿里云容器服务团队通过直播课程《云原生游戏第1讲:游戏玩家服容器化的困境与解法》…

PMP每日一练 | 考试不迷路-9.1(包含敏捷+多选)

!PMP最新考试通知 ! ​2022年6-8月落考考生可免费重考一次! 11月考试可以报名 ​(9月考试改到11月) 每日5道PMP习题助大家上岸PMP!!! ​1.项目经理接到一个开发新产品的项目,这…

一体式城市内涝监测站

一体式城市内涝监测站 计讯物联一体式城市内涝监测站,智能监测城市重点区域视频监控、水位、雨量、水量、流速等,目标数据实时上报云端,相关部门远程云平台同步监控(视频图像、水雨情、积水、排水工况),智能化管理系统实现城市防…

网课答案公众号题库接口使用详情

网课答案公众号题库接口使用详情 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台&…

ATF启动(四):BL31

1、BL2跳转BL31 在上一页在bl2_main函数中的最后一句是: smc(BL1_SMC_RUN_IMAGE, (unsigned long)next_bl_ep_info, 0, 0, 0, 0, 0, 0); 这个是触发smc操作。这个smc的handle在bl1的阶段就被制定了。 这个handle smc id是BL1_SMC_RUN_IMAGE。对应的handle函数是…

猿创征文|全方位快速了解事务的4种隔离级别

MySQL事务隔离级别事务以及事务的隔离级别1. 概念2. 事务的特性3. 事务的隔离级别3.1 Q:那么为什么事务需要有隔离级别呢?3.2 Q:那么什么事务并发会产生的问题?总结:不可重复读的和幻读很容易混淆3.3 Q:事务…