Apache Pinot 是一种实时分布式 OLAP 数据存储,旨在提供低延迟的可扩展实时分析。它可以从批处理数据源(例如 Hadoop HDFS、Amazon S3、Azure ADLS、Google Cloud Storage)以及流数据源(例如 Apache Kafka)中摄取。
Pinot 由 LinkedIn 和 Uber 的工程师构建,旨在无上限地扩展和扩展。根据集群的大小和预期的每秒查询次数 (QPS) 阈值,性能始终保持不变。
有关入门指南、部署方法、教程等,请访问我们的项目文档:https://docs.pinot.apache.org。
Pinot 最初是在 LinkedIn 构建的,旨在为丰富的交互式实时分析应用程序提供支持,例如“谁查看了个人资料”、“公司分析”、“人才洞察”等。 UberEats Restaurant Manager 是面向客户的分析应用程序的另一个示例。在 LinkedIn,Pinot 为 50 多个面向用户的产品提供支持,每秒摄取数百万个事件,并以毫秒延迟每秒处理 10 万多个查询。
快速查询:以数十毫秒的 P90 延迟过滤和聚合 PB 数据集,速度足以在 UI 中交互式返回实时结果。
高并发性:通过面向用户的应用程序直接查询 Pinot,它每秒可以服务数十万个并发查询。
SQL 查询接口:可通过内置查询编辑器和 REST API 访问高度标准的 SQL 查询接口。
多功能连接:在 PB 数据集上执行任意事实/维度和事实/事实连接。
面向列:面向列的数据库,具有各种压缩方案,例如游程长度、固定位长度。
可插式索引:可插式索引技术,包括时间戳、倒排、星树、布隆过滤器、范围、文本、JSON 和地理空间选项。
流式和批量摄取:从 Apache Kafka、Apache Pulsar 和 AWS Kinesis 实时摄取。从 Hadoop、Spark、AWS S3 等批量摄取。将批处理和流式源合并到一个表中进行查询。
实时摄取期间更新插入:大规模更新数据并保持一致性
内置多租户:在隔离的逻辑命名空间中管理和保护数据,以实现云友好的资源管理。
专为规模而打造:Pinot 具有水平可扩展性和容错能力,可适应跨存储和吞吐量范围的工作负载。
Kubernetes 上的云原生:Helm Chart 提供了水平可扩展且容错的集群部署,易于使用 Kubernetes 进行管理。
Pinot 旨在对大量数据和事件执行低延迟的实时 OLAP 查询。除了实时流摄取之外,Pinot 还支持具有相同低延迟保证的批量用例。它适用于需要对不可变数据进行快速分析(例如聚合)的环境,可能还需要实时数据摄取。 Pinot 非常适合查询具有大量维度和指标的时间序列数据。
查询示例:
SELECT sum (clicks), sum (impressions) FROM AdAnalyticsTable
WHERE
((daysSinceEpoch >= 17849 AND daysSinceEpoch <= 17856 )) AND
accountId IN ( 123456789 )
GROUP BY
daysSinceEpoch TOP 100
想为 apache/pinot 做出贡献吗? ?
想加入 Apache Pinot 开源提交者的行列吗?然后查看贡献指南,了解如何参与代码。
如果您有错误或对新功能有想法,请在打开新问题之前浏览未解决的问题以了解我们已经在处理哪些问题。
我们还标记了新贡献者可以解决的一些初学者问题。
# Clone a repo
$ git clone https://github.com/apache/pinot.git
$ cd pinot
# Build Pinot
# -Pbin-dist is required to build the binary distribution
# -Pbuild-shaded-jar is required to build the shaded jar, which is necessary for some features like spark connectors
$ mvn clean install -DskipTests -Pbin-dist -Pbuild-shaded-jar
# Run the Quick Demo
$ cd build/
$ bin/quick-start-batch.sh
对于 UI 开发设置,请参阅此文档。
正常的 Pinot 构建是使用mvn clean install
命令完成的。
但是,此命令可能需要很长时间才能运行。
为了更快地构建,建议使用mvn verify -Ppinot-fastdev
,它会禁用一些开发实际上不需要的插件。
更详细的说明可以在文档中的快速演示部分找到。
请参阅我们的项目文档中的在 Kubernetes 上运行 Pinot。 Pinot 还提供 Kubernetes 与交互式查询引擎 Trino Presto 和数据可视化工具 Apache Superset 的集成。
查看 Pinot 文档以获取 Pinot 功能的完整描述。
Apache Pinot 遵循 Apache 许可证,版本 2.0