If you load data into a KTable or GlobalKTable, it's expected that the
data is partitioned by key, and that records with the same key have
non-descending timestamps.

If a record with let's say key A and timestamp 5 is put into the table,
and later a record with key A and timestamp 4 is put into the table, the
second record is an out-of-order record and a warning is logged for this
case, as it might indicate that your data is no ordered correctly what
might lead to incorrect/unexpected join results.

If data is out-of-order your table content semantically goes (partially)
back in time what is usually undesired -- your table content should
usually go forward in time only.

Does this help?


-Matthias



On 7/8/20 10:54 AM, Richard Rossel wrote:
> Hi there,
> 
> I'm getting lot of this type of warning:
> 
> 
>  WARN org.apache.kafka.streams.kstream.internals.KTableSource - Detected
> out-of-order KTable update for entity-STATE-STORE-0000000000 at offset
> 65806, partition 5.
> 
> It looks like the warning is generated each time a new record goes into the
> source topic which is being used to load a globalKTable, and only happens
> when the source topic is updated very frequently (each second).
> 
> I would like to know what is the meaning of that warning, maybe I'm not
> loading the Ktable correctly.
> 
> My process is basically a simple enrichment process (Using Kafka 2.4):
> ...
> 
>  GlobalKTable<String, String> entity = builder.globalTable(entityTopic);
> 
>  KStream<String, String> joined = dataStream.join(entity,
> 
>                 (leftKey, leftValue) -> leftKey,
> 
>                 joiner);
> 
>  joined.to(enrichedTopic);
> ...
> 
> The entityTopic and the topic used by dataStream, are sharing the same key
> type (username),
> and the entityTopic is receiving entries from another process very
> frequently.
> 
> Do you think those warning messages are because of the way I'm creating the
> Ktable?
> 
> Thanks.-
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to