首页 > 解决方案 > 使用 Data Replication 的 Kafka 事务一致性消费者——如何配置?在 Kafka 中暂存是否比写入 WebHDFS 更好?

问题描述

我们已经在 IBM Data Replication CDC Replication Engine for Kafka 上建立了工作订阅。消息(复制事务)开始出现在目标 kafka 主题上。

我们的目标是创建一个程序,从 kafka 读取这些消息并写入目标系统上的文件。

  1. 我们如何调整kafka_bookmark_storage_type参数?我们开始按照此处提供的说明进行操作。根据Kafka 事务一致的消费者部分,有一个先决条件。我们必须

    “[..] 将系统参数 kafka_bookmark_storage_type 从默认值 POINTBASE 更改为值 COMMITSTREAMTOPIC.[..]”。

    您能否建议在哪里更改上述参数?我们的目标系统在 Linux 上运行。源代码在 AIX 上运行。这导致:

  2. 事务一致的客户端或 WebHDFS:如果我们宁愿将 CDC 用于 WebHDFS 而不是 CDC Kafka,我们在技术上会失去/获得什么功能?

标签: ibm-data-replication

解决方案


我是 Sarah,我在 IBM 工作。我将分两部分回答你的问题:

“我们的目标是创建一个程序,从 kafka 读取这些消息并写入目标系统上的文件。”</p>

将 TCC API 合并到您的消费应用程序中是一种确保您可以重新创建源数据的原始事务性的方法。但是,您也可以通过简单地从主题中读取数据来使用标准的 Kafka 消费方式。在知识中心中,您将看到每个 KCOP、Kafka-console-consumer 命令以通用 Kafka 方式读取数据。只是指出您可以选择两者。

前任 :

”[..] 将系统参数 kafka_bookmark_storage_type 从默认值 POINTBASE 更改为值 COMMITSTREAMTOPIC.[..]”</p>

此参数是数据存储参数,应在 CDC Kafka 目标实例上设置。您可以通过 MC 执行此操作,方法是右键单击数据存储并在其中添加参数。

现在你问题的第二部分:

“事务一致的客户端与 WebHDFS 如果我们宁愿将 CDC 用于 WebHDFS 而不是 CDC Kafka,我们会在功能方面失去/获得什么?”</p>

CDC for Kafka 是该产品最快的目标。Kafka 的架构更接近于源数据库上发生的变化流。HDFS 需要聚合消息,因为 Hadoop 不喜欢很多小文件。采用 OLTP 工作负载并将其转换为批处理本质上是一个效率较低的过程,并且在使用 CDC 资源方面效率较低。CDC Kafka 将更好地扩展,因为它可以利用并行写入主题等。

许多拥有 Hadoop 系统的客户普遍发现,在他们前面添加 Kafka 作为 OLTP 类型消息工作负载的缓冲区,既可以直接从 Kafka 集群实时访问数据,也可以使用 Kafka 作为执行缓冲区最终写入 Hadoop 时的批处理聚合。一些客户报告说,Kafka 的开源 HDFS 连接器成功执行此任务,从 Kafka 获取数据并将其应用于 Hadoop,甚至可以将数据转换为 parquet 或 Avro 数据文件格式,我相信。


推荐阅读