📜  带键的 kafkacat grerp (1)

📅  最后修改于: 2023-12-03 15:39:27.289000             🧑  作者: Mango

带键的 kafkacat grep

简介

kafkacat grep 是一个基于 Kafka topic 的过滤工具,可以根据指定条件来筛选消息。它允许你使用正则表达式或字符串作为条件,同时,通过指定 key 作为过滤条件,可以实现带键的过滤。

安装

在 Linux 上安装 kafkacat grep 很简单,只需要使用以下命令即可:

sudo apt-get install kafkacat

如果你使用的是 macOS,则可以使用 Homebrew 来安装:

brew install kafkacat
用法

可以通过以下命令行来使用 kafkacat grep:

kafkacat -C -b kafka_server:9092 -t kafka_topic -K '|' -u -e \
    | grep 'your_regex' \
    | awk -F '|' '{print $2}'

其中,参数详解如下:

  • -C:以消费模式运行;
  • -b:指定 Kafka broker 地址;
  • -t:指定 Kafka topic;
  • -K:指定键与消息之间的分隔符;
  • -u:禁用缓冲区(仅在结合 grep 等工具使用时有效);
  • -e:从以前(最早)的消息开始。

注意,其中的 grep 命令可自定义,可以根据不同的需要来指定。

实例

以下是一个实例,假设有一个名为 weather 的 Kafka topic,数据格式如下:

{"city":"Shanghai","temperature":"25"}
{"city":"Tokyo","temperature":"20"}
{"city":"New York","temperature":"15"}

现在,我们想要筛选出城市为 Shanghai 的数据,可以使用以下命令:

kafkacat -C -b kafka_server:9092 -t weather -K '\n' -u -e \
    | grep '"city":"Shanghai"' \
    | awk -F ',' '{print $2}' \
    | awk -F ':' '{print $2}'

执行上述命令后,将会输出 Shanghai

结语

kafkacat grep 是一个非常强大、方便的 Kafka topic 过滤工具,它可以让你更加灵活地筛选消息,并且支持带键过滤,可以让你更加方便地处理数据。