我有一个主要的Kafka主题,它接收一些时间序列数据。我需要获取该主题中的每个值,将其复制,然后根据其键中的值将其发送到多个单独的主题中的一个。由于是时间序列数据,因此每个条目的值都带有时间戳。我如何才能完成此拆分,同时确保放入各个主题的值在时间戳上不会乱序?
答案 0 :(得分:1)
是的。使用kafkaStreams,您可以连续读取代理中的任何主题,使用有条件的处理数据(在您的情况下,基于id),并在其他任何输出主题中写回代理。 (可选)要检查结果,您可以从任何其他侦听器订阅这些输出主题。简单快捷。
答案 1 :(得分:0)
您可以使用KSQL并通过SQL查询创建新主题:
CREATE STREAM pageviews(
viewtime BIGINT KEY,
userid VARCHAR,
pageid VARCHAR
) WITH (
KAFKA_TOPIC='pageviews',
VALUE_FORMAT='DELIMITED',
PARTITIONS=4,
REPLICAS=3
);
https://docs.ksqldb.io/en/latest/developer-guide/create-a-stream/
或如@Matthias J. Sax在KStreams中提到的: https://kafka.apache.org/23/javadoc/org/apache/kafka/streams/kstream/KStream.html