2.5. Kafka 接続内でのデータへの操作の適用
Kamelet と Kafka トピック間で渡されるデータで操作を実行する場合は、Kamelet Binding 内の中間ステップとして、アクション Kamelets を使用します。
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: 元のトピック値とメッセージ値フィールドからのタイムスタンプフィールドに基づいてメッセージのトピックを変更します。Message Timestamp Router Action Kamelet(
message-timestamp-router-action
) を設定します。 -
述語: Predicate Filter Action Kamelet (
predicate-filter-action
) を設定して、指定の JSON パス式に基づいてイベントをフィルターします。
前提条件
-
Kamelet Binding でのデータソースの Kafka トピックへの接続 で説明されているように、シンクが
kafka-sink
Kamelet である Kamelet Binding を作成している。 - Kamelet Binding に追加する変換のタイプを知っている必要があります。
手順
宛先トピックを変更するには、Kamelet Binding 内の中間ステップとして変更アクション Kamelets の 1 つを使用します。
アクション Kamelet を Kamelet Binding に追加する方法は、Kamelet Binding への操作の追加 を参照してください。