繁体   English   中英

如何将一个 Kafka 主题拆分为多个较小的 Kafka 主题?

[英]How to split one Kafka topic into multiple smaller Kafka topics?

我有一个主要的 Kafka 主题,它接收一些时间序列数据。 我需要获取进入该主题的每个值,将其复制,然后根据其键中的值将其发送到许多单独的主题之一。 由于它是时间序列数据,因此每个条目的值都有一个时间戳。 如何在确保推送到单独主题的值不会因时间戳而乱序的同时完成这种拆分?

真的。 使用 kafkaStreams,您可以连续读取代理中的任何主题,使用条件处理数据(根据您的情况在 id 中)并在任何其他输出主题中写回代理。 或者,要检查其中的结果,您可以从任何其他侦听器订阅这些输出主题。 方便快捷。

您可以使用 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/

或者如 KStreams 中提到的@Matthias J. Sax: https ://kafka.apache.org/23/javadoc/org/apache/kafka/streams/kstream/KStream.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM