Apache Kafka 集成

Vertica 提供了与开源分布式实时流媒体平台 Apache Kafka 集成的高性能机制。由于 Vertica 既可以使用 Kafka 中的数据,也可以为 Kafka 生成数据,因此可以在执行自动分析工作流的过程中使用 Vertica:Vertica 可以从 Kafka 中检索数据,对数据进行分析,然后将结果发回 Kafka 供其他应用程序使用。

先决条件

架构和概述

Vertica 和 Kafka 的集成提供了以下功能:

  • 一个 UDx 库,其中包含将数据从 Kafka 主题加载到 Vertica 并对数据进行解析的函数

  • 使用 UDL 库的作业调度程序可持续消耗来自 Kafka 的数据,并利用“只执行一次”语义

  • 基于推送的通知程序,它将数据收集器消息从 Vertica 发送到 Kafka

  • 一个 KafkaExport 函数,它将 Vertica 数据发送到 Kafka

Vertica 作为 Kafka 的使用者

Kafka 使用者读取由其他数据流写入 Kafka 的消息。由于 Vertica 可以读取来自 Kafka 的消息,因此您可以存储并分析来自任何向 Kafka 发送数据的应用程序中的数据,而无需将每个单独的应用程序配置为连接到 Vertica。Vertica 提供了可用于自动或手动使用从 Kafka 加载的数据的工具。

手动加载

通过直接执行 COPY 语句从 Kafka 手动加载有限数量的数据。如果您想要对一组消息进行分析、测试或执行其他处理,这会非常有用。

有关详细信息,请参阅使用来自 Kafka 的数据

自动加载

使用作业调度程序从 Kafka 自动加载数据。调度程序不断加载数据,并确保每条 Kafka 消息只加载一次。

必须在运行调度程序的每个 Vertica 节点上安装 Java 8。有关详细信息,请参阅使用调度程序自动使用来自 Kafka 的数据

Vertica 作为 Kafka 的生产者

Kafka 生产者将数据发送给 Kafka,数据随后可供 Kafka 使用者进行处理。可以将以下类型的数据发送到 Kafka:

  • Vertica 分析结果。使用 KafkaExport 导出 Vertica 表和查询。

  • 数据收集器表中的运行状况和性能数据。创建基于推送的通知程序,发送此数据供第三方监控工具使用。

  • 临时消息。使用 NOTIFY 表示存储过程等任务已完成。

有关详细信息,请参阅为 Kafka 生成数据