How can I read from versioned ktable

Hi

I am trying to use interactive queries to read from local K-table, but my K-table is versioned k-table, is it possible to read from it?

When I tried, I am getting this error.

Cannot get state store pairing-k-store because the queryable store type [class org.apache.kafka.streams.state.QueryableStoreTypes$TimestampedKeyValueStoreType] does not accept the actual store type [class org.apache.kafka.streams.state.internals.MeteredVersionedKeyValueStore].

thanks for any suggestions in advance.

Versioned stores/KTables support the following queries:

  • KeyQuery
  • RangeQuery
  • VersionedKeyQuery
  • MultiVersionedKeyQuery

Using KafkaStreams#query(...) method. This is the new IQv2 API.

It seems you are trying to use the “old” IQv1 KafkaStreams#store(...) method, which is not supported for versioned stores/KTables.

Cf kafka/streams/integration-tests/src/test/java/org/apache/kafka/streams/integration/IQv2VersionedStoreIntegrationTest.java at c771116b89bbd9916b4315140a6c5c087c16e354 · apache/kafka · GitHub

Also:

Seems there is some gap in the documentation. I did file a ticket for it: [KAFKA-19052] Document how to query versioned stores/KTables - ASF JIRA (feel free to pick it up :slight_smile:)

@mjsax : Thank you! I will give a try.