Apache Pinot 1.3.0 发布:多阶段查询引擎增强与时间序列分析能力突破
引言
Apache Pinot 是一个开源的分布式实时分析数据库,专为低延迟、高吞吐量的分析查询而设计。它能够处理大规模数据集,并提供亚秒级的查询响应时间,非常适合实时分析、运营监控和用户行为分析等场景。最新发布的 1.3.0 版本带来了多项重要改进,特别是在多阶段查询引擎和时间序列分析能力方面的突破。
多阶段查询引擎的显著增强
1.3.0 版本在多阶段查询引擎方面进行了多项优化,显著提升了查询性能和功能完备性。
查询计划重用机制
新版本引入了跨阶段的查询计划重用机制,通过将查询计划划分为多个阶段,并在这些阶段之间重用计算结果,减少了重复计算的开销。这种机制特别优化了 MailboxSendOperator 和 MailboxReceiveOperator 之间的数据传输,将阶段连接转化为有向无环图(DAG)结构,提高了执行效率。
执行计划可视化
新增的 Segment Plan 功能为多阶段查询提供了详细的执行计划展示,包括物理操作符的具体信息。通过新的 ExplainPlanNode,用户可以更清晰地了解查询执行过程,便于性能调优和问题排查。
性能优化
数据块的序列化和反序列化性能得到了显著提升,通过减少内存分配和拷贝操作,实现了1-3倍的吞吐量提升。这对于处理大规模数据集时的GC延迟问题有显著改善。
功能增强
- 新增了对时间戳类型的加减运算支持
- 优化了 DISTINCT 操作符在 IN 子句中的处理
- 支持时间戳索引的使用
- 增加了多态标量比较函数的支持
- 优化了 MergeEqInFilterOptimizer 的哈希计算
实验性时间序列查询引擎
1.3.0 版本引入了一个实验性的时间序列查询引擎,这是本次发布的重要亮点之一。
设计理念
传统的时间序列分析在 Pinot 中需要通过 SQL 实现,存在一定的局限性。新的时间序列引擎采用插件化架构,支持多种时间序列查询语言(如 PromQL、M3QL)的集成,专门为时间序列数据分析优化。
核心特性
- 插件化查询语言支持:通过 SPI 模块,可以灵活集成不同的时间序列查询语言
- 专用时间序列操作符:支持实现特定于时间序列分析的操作函数
- 序列化数据处理:优化了时间序列数据的处理方式,相比传统的行式处理更高效
技术实现
引擎重用了 Pinot 现有的多阶段查询引擎的基础设施,包括查询调度器、分发器和通信机制,同时将语言解析器和计划器保持为可插拔模块。这种设计既保证了性能,又提供了扩展灵活性。
数据库查询配额管理
新版本引入了数据库级别的查询配额控制机制,为多租户环境下的资源管理提供了更细粒度的控制。
配额配置
- 默认配额通过集群配置设置
- 支持针对特定数据库的配额覆盖
- 配额动态调整机制,根据活跃 broker 数量自动分配
管理接口
提供了 REST API 用于配额设置和查询,管理员可以轻松管理不同数据库的查询资源限制。配额更新通过 ZooKeeper 通知机制实时生效,确保配置变更的及时性。
二进制工作负载调度器
针对混合工作负载场景,新版本引入了 BinaryWorkloadScheduler,将查询分为两类进行差异化调度:
- 主要工作负载:生产环境关键查询,采用无限制的FCFS调度
- 次要工作负载:包括临时查询、调试工具等,施加并发查询数、线程数等限制
这种设计有效防止了资源密集型查询影响核心业务查询的稳定性。
游标支持与分页查询
1.3.0 版本新增了游标支持,使客户端能够分批处理大型查询结果,降低内存需求。主要特性包括:
- 新增查询API支持分页参数
- 结果存储和检索接口
- 支持自定义的序列化和存储实现
这对于需要分页展示结果的应用程序特别有用,如数据表格或图表展示场景。
功能增强与安全改进
新增函数支持
- URL处理函数:包括URL解析、编码解码、参数提取等丰富功能
- 地理空间函数:支持GeoJSON格式的地理数据处理
- 数学函数:新增整数除法、模运算、最大公约数等实用函数
安全增强
- 强制每日SSL证书重新加载
- 完善TLS配置支持
- 修复多个安全问题
- 改进权限控制和访问管理
总结
Apache Pinot 1.3.0 版本在多阶段查询引擎、时间序列分析、资源管理和安全性等方面都有显著进步。特别是实验性时间序列引擎的引入,为监控和可观测性场景提供了更专业的支持。这些改进使 Pinot 在实时分析领域的竞争力进一步提升,为处理大规模数据分析任务提供了更强大、更灵活的工具集。
对于现有用户,建议重点关注多阶段查询引擎的优化和新函数支持;对于考虑采用 Pinot 的用户,1.3.0 版本增强的时间序列处理能力值得特别关注。随着这些新特性的稳定和成熟,Pinot 在实时分析生态系统中的地位将更加巩固。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00