Apache Pinot,一个开源 OLAP 数据仓库

阿帕奇黑皮诺

Apache Pinot 是一个实时分布式 OLAP 数据仓库

Apache Pinot是一款实时分布式 OLAP 存储解决方案,旨在提供可扩展、低延迟的实时分析。

它可以从批量数据源(例如 HDFS、S3、Azure Data Lake、Google Cloud Storage)以及流式数据源(例如 Kafka)摄取数据。Pinot 的设计使其能够横向扩展,因此可以根据需要扩展到更大的数据集和更高的查询速率。

关于阿帕奇皮诺

Pinot 项目最初由 LinkedIn 开发,并于 2015 年移交给 Apache 基金会进行进一步的联合开发。该存储系统旨在应对不断添加新数据的环境,并经过精心设计,可提供最小且可预测的延迟,从而能够用于实时查询处理。

与其他大多数数据仓库和 OLAP 数据仓库解决方案一样,Pinot支持类似 SQL 的查询语言,支持选择、聚合、过滤、分组、排序和其他数据查询。

Apache Pinot提供水平扩展能力,并具备应对软硬件故障的容错和生存能力。复制和备份流程直接集成到数据存储中添加的数据处理周期中。一方面,这种方法显著简化了架构;但另一方面,它也引入了数据添加和可供查询之间的延迟。

数据存储在列式数据库的表中,支持多种压缩方案,并允许在一个字段中放置多个值。Pinot 提供了一个可插拔的索引系统,可以利用各种索引技术(有序索引、位图索引、倒排索引、StarTree 索引、布隆过滤器、范围索引、文本搜索索引(Lucence/FST)、JSON 索引、地理空间索引)。

Apache Pinot 的突出特点如下:

  • 面向列– 具有各种压缩方案(例如游程长度和固定位长度)的面向列的数据库。
  • 可插入索引:可插入索引技术、排序索引、位图索引、倒排索引。
  • 查询优化- 能够根据查询和段元数据优化查询/执行计划。
  • 流和批次的摄取: Hadoop 流的近实时摄取和批量摄取。
  • 咨询: 基于 SQL 的查询执行引擎。
  • 在摄取过程中实时更新插入: 大规模更新数据并保持一致性
  • 多个值字段: 支持多值字段,允许您以逗号分隔值的形式查询字段。
  • Kubernetes 上的云原生: Helm Chart 提供了水平可扩展、容错的集群部署,易于使用 Kubernetes 进行管理。

新版本的 Apache Pinot

值得一提的是,Apache Pinot 1.0 版本最近发布,它基本上总结了大量工作,以稳定代码库并考虑社区的愿望(考虑了 300 多条评论)。

此外,值得一提的是,新的多阶段查询引擎已充分发挥其潜力,支持表合并(JOIN)操作。最初使用的引擎在简单的筛选和聚合操作方面表现出色,但为了确保查询执行时间的可预测性,它不支持表连接操作。

新引擎包含用于处理复杂查询的中间阶段,其 SQL 语义接近 ANSI SQL。此外,新版本原生支持处理 JSON 数据,支持“NULL”值,集成了 Apache Spark 3.x,并改进了 Upsert 模式下表的实现(增加了段压缩并支持删除操作)。

最后,如果您想了解更多信息,需要知道该项目的代码是用 Java 编写的,并以 Apache 许可证发布。您可以通过以下链接找到有关新版本的详细信息。


在 Google 中将其添加为首选来源