Google Cloud PubSub:如何只读取最新记录
Google Cloud PubSub: How to read only latest records
在 Kafka 中,有 2 个设置 earliest
和 latest
,您可以从主题的最早偏移量 (0) 或最新事件(对实时有用)开始读取
我现在将 PubSub 与 Dataflow 和 Beam 一起使用,但默认情况下,作业似乎每次启动时都从最早开始读取。如何配置让它只读取最新的记录?
由于 latest
是 Kafka 中的默认值,谁能解释为什么这在 Pub/Sub 中不容易实现?
您可以尝试使用搜索选项:https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/seek
它仍然有点初级,因为您需要确定时间戳或快照。
我想 Apache Beam 选项会使用 withTimestampAttribute
最新的定义是什么?事实上,对于 Beam,PubsubIO reader 是一个无限制的读取。也就是说,没有尽头,最近之后总有更近的!
所以,这是哲学部分。事实上,你必须定义,最新的比较什么。有了beam,可以用windowing。然后,你可以说,在 window 的 5 分钟内,我想处理最后一个 。这里latest的定义是正确的,你可以实现这个。
在 Kafka 中,有 2 个设置 earliest
和 latest
,您可以从主题的最早偏移量 (0) 或最新事件(对实时有用)开始读取
我现在将 PubSub 与 Dataflow 和 Beam 一起使用,但默认情况下,作业似乎每次启动时都从最早开始读取。如何配置让它只读取最新的记录?
由于 latest
是 Kafka 中的默认值,谁能解释为什么这在 Pub/Sub 中不容易实现?
您可以尝试使用搜索选项:https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/seek
它仍然有点初级,因为您需要确定时间戳或快照。
我想 Apache Beam 选项会使用 withTimestampAttribute
最新的定义是什么?事实上,对于 Beam,PubsubIO reader 是一个无限制的读取。也就是说,没有尽头,最近之后总有更近的!
所以,这是哲学部分。事实上,你必须定义,最新的比较什么。有了beam,可以用windowing。然后,你可以说,在 window 的 5 分钟内,我想处理最后一个 。这里latest的定义是正确的,你可以实现这个。