Reputation: 45
I'm processing a stream of events from a Kinesis stream using Apache Beam (v. 2.56.0
, Java SDK)
The KinesisIO
source uses the source timestamp (likely the time the record was received by Kinesis) as the PCollection timestamp. However, I need to use the timestamp embedded within each event for correct processing.
I've tried using the WithTimestamp
transform to extract the event timestamp from each element of the PCollection, but I encounter the following error: Output timestamps must be no earlier than the timestamp of the current input or timer.
This occurs because the input timestamp (Kinesis source timestamp) is consistently earlier than the event timestamp.
Some events may arrive out of order within the Kinesis stream.Using the event timestamp is crucial for ensuring correct processing order and accurate temporal analysis.
How can I effectively use the event timestamp as the PCollection timestamp in my Apache Beam pipeline and avoiding the earliest timestamp problem.
Upvotes: 0
Views: 15