Apache Pinot、Kafka 和 Presto实现低延迟、高吞吐量的面向用户的分析


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

如果您对 Apache Pinot 感到好奇但刚刚开始使用,那么这篇文章适合您。我们将更深入地了解 Apache Pinot,以帮助您了解构成 Pinot 集群的组件。我们还将通过运行示例获得实践经验,这些示例包括将流式和批处理数据导入 Pinot,然后执行分析查询。 

分析的演变
1、批量分析
过去,分析通常是分批执行的,这导致了高延迟分析,其中查询根据至少几分钟、几小时甚至几天前的数据返回响应,具体取决于数据量和可用的计算资源。商业智能( BI ) 报告的生成是批量分析的一个用例。商业智能使用历史数据来报告业务趋势并回答战略问题。在批处理式分析中,作业通常安排在夜间或非工作时间运行。所以,它经常为我们提供事后的见解. 大多数时候,这些批处理类型的洞察力是基于陈旧的数据(旧信息),所以我们不能依赖它们。因此,再也没有人愿意批量进行分析。

2、实时分析
实时分析现在已经成为每个企业都应该做的事情。这是将逻辑应用于数据以立即获得见解或得出结论的过程,以便做出更好的决策。实时分析中的“实时”,是指数据(交易)进入系统后,能够第一时间获得业务洞察。实时访问分析对于日常运营、财务情报、事件分类以及允许企业快速采取行动非常重要。实时分析最重要的好处是它可以让您抓住机会,防患于未然。

3、面向用户的分析
在我们现在生活的世界中,每个人都需要实时分析数据,而不仅仅是业务分析师或高层管理人员。我们将这种分析称为“面向用户的分析”,也称为“面向客户的分析”。一个很好的例子是 LinkedIn 的“谁查看了您的个人资料”功能,该功能让其超过 7 亿的所有用户都可以对有关谁查看了他们的页面的信息进行切片和切块。Uber 创建了 UberEats Restaurant Manager 应用程序,让餐厅老板实时了解他们的订单数据。这是另一个很好的例子,说明如何最好地使用面向用户的实时分析来改善最终用户体验。 

在面向用户的分析中,用户不会忍受极其缓慢的分析。当他们能够实时找到见解时,他们就会更愿意接受数据驱动的文化。因此,我们需要一个可以扩展到数百万用户并提供快速、实时洞察的解决方案。企业正在努力加快获取足够数据来回答每个人问题所需的步骤。“ Apache Pinot ”是我们的救星之一。

Apache Pinot 简介
Apache Pinot 是一种实时分布式 OLAP 数据存储,专为低延迟、高吞吐量分析而构建,非常适合面向用户的分析工作负载。
它可以直接从 Apache Kafka 和 Amazon Kinesis 等流数据源获取数据,并使事件可立即进行查询。它还可以从 Hadoop HDFS、Amazon S3、Azure ADLS 和 Google Cloud Storage 等批处理数据源中摄取。
该系统的核心是一个柱状存储,配备了先进的索引和预聚合技术以实现低延迟。这使得 Pinot 成为实时分析的最佳选择。
关于 Pinot 的最好的事情之一是它有一个可插拔的架构。这些插件可以轻松添加对任何第三方系统的支持,例如执行框架、文件系统或输入格式。例如,一些插件可以轻松获取数据并将其推送到我们的 Pinot 集群:

  • pinot-batch-ingestion-spark
  • pinot-s3
  • pinot-parquet

Pinot携手Presto和Kafka
现在,问题来了:如果没有 Kafka 和 Presto 的帮助,Pinot 就不能做它应该做的事情吗?由于某些限制,Pinot 依赖 Kafka 和 Presto 提供面向用户的高吞吐量和低延迟分析。我们将探讨将 Kafka 和 Presto 与 Pinot 一起使用的原因,以及它们如何相互补充。

Presto 和 Pinot 是截然不同的技术,但它们在执行和存储临时数据分析方面可以很好地互补。Presto 支持 SQL,但用户不能使用它来获取新鲜的聚合数据。另一方面,Pinot 可以给我们秒级的数据新鲜度,但是它不支持灵活的查询。

Apache Kafka 已成为实时事件流的行业标准,因为它完美地解决了实时摄取高速、大量和可变数据的问题。将 Kafka 与 Pinot 集成使事件流可用于实时查询。这允许段在构建时可用于查询处理。
在接下来的部分中,我们将介绍 Pinot 如何利用 Kafka 和 Presto,使其成为面向用户的大规模分析工作负载的完美选择。

详细点击标题