我该如何设置 spark 接电话的工作 kafka topic 从 specific offset 基于 timestamp ? 假设我需要从Kafka主题中获取所有数据 starting 6 hours ago .
spark
kafka topic
specific offset
timestamp
starting 6 hours ago
r8xiu3jd1#
Kafka不是那样工作的。您看到的kafka类似于可以使用另一个不同于offset的参数进行查询的东西,此外请记住,主题可以有多个分区,因此每个分区都有一个不同的分区。也许您可以使用另一个关系存储来Map带有时间戳的偏移量/分区,这有点冒险。例如,在akka stream kafka consumer中,应该通过另一个主题发送每个按时间戳的请求,以激活您的consumer(每个consumer都分配了一个或多个分区),并查询特定的偏移、生成和合并。有了spark,你可以为每项工作调整你的消费策略,但过程应该是一样的。另一件事是如果你的Kafka恢复了它´有可能您需要阅读整个主题来更新配对(时间戳/偏移量)。所有这些听起来可能有点奇怪,也许最好将主题存储在cassandra中(例如),然后您可以稍后查询它。
byqmnocz2#
kafka是一个只附加的日志存储。只要知道偏移量,就可以从分区中的特定偏移量开始消费。消费是超快的,你可以有一个设计,你从哪里开始 smallest 当你遇到一个消息(可能有一个 timestamp 要检查的字段)。
smallest
2条答案
按热度按时间r8xiu3jd1#
Kafka不是那样工作的。您看到的kafka类似于可以使用另一个不同于offset的参数进行查询的东西,此外请记住,主题可以有多个分区,因此每个分区都有一个不同的分区。也许您可以使用另一个关系存储来Map带有时间戳的偏移量/分区,这有点冒险。例如,在akka stream kafka consumer中,应该通过另一个主题发送每个按时间戳的请求,以激活您的consumer(每个consumer都分配了一个或多个分区),并查询特定的偏移、生成和合并。有了spark,你可以为每项工作调整你的消费策略,但过程应该是一样的。
另一件事是如果你的Kafka恢复了它´有可能您需要阅读整个主题来更新配对(时间戳/偏移量)。所有这些听起来可能有点奇怪,也许最好将主题存储在cassandra中(例如),然后您可以稍后查询它。
byqmnocz2#
kafka是一个只附加的日志存储。只要知道偏移量,就可以从分区中的特定偏移量开始消费。消费是超快的,你可以有一个设计,你从哪里开始
smallest
当你遇到一个消息(可能有一个timestamp
要检查的字段)。