Red Hat Camel K is no longer supported.
As of June 30, 2025, Red Hat build of Camel K has reached End of Life. The suggested replacements is Red Hat build of Apache Camel. For details about moving, see the Camel K to Camel Quarkus migration guide.2.5. 将操作应用到 Kafka 连接中的数据
如果要对 Kamelet 和 Kafka 主题之间传递的数据执行操作,请使用 action Kamelets 作为 Kamelet Binding 中的中间步骤。
2.5.1. 将事件数据路由到不同的目标主题 复制链接链接已复制到粘贴板!
当您配置到 Kafka 实例时,您可以选择将主题信息从事件数据转换,以便事件路由到不同的 Kafka 主题。使用以下转换操作 Kamelets 之一:
-
regex Router - 使用正则表达式和替换字符串修改消息的主题。例如,如果要删除主题前缀、添加前缀或删除主题名称的一部分。配置 Regex Router Action Kamelet (
regex-router-action)。 -
timestamp - 根据原始主题和消息的时间戳修改消息的主题。例如,在使用需要写入不同表或基于时间戳的索引的接收器时。例如,当您要将事件从 Kafka 写入 Elasticsearch 时,但每个事件都需要根据事件本身的信息进入不同的索引。配置 Timestamp Router Action Kamelet (
timestamp-router-action)。 -
message TimeStamp - 根据原始主题值修改消息 的主题,以及来自消息值字段的 timestamp 字段。配置 Message Timestamp Router Action Kamelet (
message-timestamp-router-action)。 -
predicate - 通过配置 Predicate Filter Action Kamelet (
predicate-filter-action),根据给定的 JSON 路径表达式过滤事件。
先决条件
-
您已创建了 Kamelet Binding,其中接收器是一个
kafka-sinkKamelet,如 将数据源连接到 Kamelet Binding 中的 Kafka 主题 中所述。 - 您知道您要添加到 Kamelet Binding 中的转换类型。
流程
要转换目的地主题,请使用一个转换操作 Kamelets 作为 Kamelet Binding 中的中间步骤。
有关如何将操作 Kamelet 添加到 Kamelet Binding 的详情,请参阅 Adding a operation to a Kamelet Binding。
2.5.2. 过滤特定 Kafka 主题的事件数据 复制链接链接已复制到粘贴板!
如果您使用为许多不同的 Kafka 主题生成记录的源 Kamelet,而您想要将记录过滤为一个 Kafka 主题,请将 topic-name-matches-filter-action Kamelet 添加为 Kamelet Binding 中的中间步骤。
先决条件
- 您已在 YAML 文件中创建了一个 Kamelet Binding。
- 您知道要过滤事件数据的 Kafka 主题的名称。
流程
编辑 Kamelet Binding,使其包含
topic-name-matches-filter-actionKamelet 作为 source 和 sink Kamelets 之间的中间步骤。通常,您可以使用
kafka-sourceKamelet 作为源 Kamelet,并提供一个主题作为所需主题参数的值。在以下 Kamelet Binding 示例中,
kafka-sourceKamelet 指定test-topic、test-topic-2 和 test-topic-3Kafka 主题,以及topic-name-matches-filter-actionKamelet 指定过滤来自topic-test主题的事件数据:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要过滤来自
kafka-sourceKamelet 以外的源 Kamelet 的主题,您必须提供 Kafka 主题信息。您可以使用insert-header-actionKamelet 将 Kafka 主题字段添加为中间步骤,在 Kamelet Binding 中的topic-name-matches-filter-action步骤前,如下例所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 保存 Kamelet Binding YAML 文件。