Apache Pinot 概述
Apache Pinot 是一个开源的、面向列的分布式数据存储系统,用 Java 编写。它专为低延迟的多维分析查询(MDA)而设计,采用在线分析处理(OLAP)技术。
历史与发展
Pinot 最初是 LinkedIn 在 2013 年开发的一个内部项目,用于支持分析解决方案。2015 年 6 月,该项目基于 Apache 2.0 许可证开源,并于 2019 年 6 月成为 Apache 软件基金会的一部分。在 1.0 版本发布之前,社区已经解决了 300 个问题,引入了新功能、提升了性能并修复了漏洞。目前,该项目在 GitHub 上拥有超过 130 万行代码,由 300 多名贡献者共同开发。
核心功能与优势
Apache Pinot 最适合用于对不可变的实时摄入数据进行分析,特别是在查询具有多个维度和指标的时间序列数据时表现出色。它使用 Apache Helix 作为嵌入式代理进行集群管理,并使用 Apache Zookeeper 进行集群状态和健康的协调与维护。
Pinot 提供快速查询功能,能够以 P90 延迟在几十毫秒内过滤和聚合 PB 级数据。数据可以通过 Apache Kafka、Apache Pulsar 和 AWS Kinesis 等流式解决方案实时摄入,也可以通过 Apache Hadoop、Apache Spark 和 AWS S3 等批处理方式摄入。Pinot 具有水平扩展性和容错性,支持通过 Pinot Query Language (PQL)、SQL 或 Trino 和 Presto SQL 查询引擎进行数据查询。
多阶段查询引擎
1.0 版本的一个关键特性是多阶段查询引擎的功能完备性。默认的查询执行引擎从未针对分布式连接和窗口操作等复杂查询进行优化。多阶段查询引擎支持实时多阶段操作符,如分布式连接和窗口操作,并通过新的查询计划优化器最小化数据混洗。
入门指南
Pinot 的入门指南描述了如何在本地、Docker、Kubernetes 或 Azure、GCP、AWS 等公有云上运行 Pinot。以下命令可用于运行带有预加载棒球数据集的 Pinot:
docker run \
-p 9000:9000 \
apachepinot/pinot:0.12.0 QuickStart \
-type batch快速入门示例文档提供了更多关于不同示例和所有可用启动命令的信息。
资源与社区
更多详细信息可以在 Apache Pinot 1.0 的发布说明和公告中找到。StarTree 的开发者关系副总裁 Tim Berglund 在 YouTube 上介绍了 Apache Pinot 1.0,并解释了 Pinot 的基本概念。Apache Pinot Meetup Group 定期组织会议,用户也可以在 Slack 上提问。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。