K
- Type of keysV
- Type of valuespublic interface WindowStore<K,V> extends StateStore, ReadOnlyWindowStore<K,V>
StateStore
.Modifier and Type | Method and Description |
---|---|
default WindowStoreIterator<V> |
fetch(K key,
java.time.Instant from,
java.time.Instant to)
Get all the key-value pairs with the given key and the time range from all the existing windows.
|
default KeyValueIterator<Windowed<K>,V> |
fetch(K from,
K to,
java.time.Instant fromTime,
java.time.Instant toTime)
Get all the key-value pairs in the given key range and time range from all the existing windows.
|
KeyValueIterator<Windowed<K>,V> |
fetch(K from,
K to,
long timeFrom,
long timeTo)
Get all the key-value pairs in the given key range and time range from all the existing windows.
|
WindowStoreIterator<V> |
fetch(K key,
long timeFrom,
long timeTo)
Get all the key-value pairs with the given key and the time range from all the existing windows.
|
default KeyValueIterator<Windowed<K>,V> |
fetchAll(java.time.Instant from,
java.time.Instant to)
Gets all the key-value pairs that belong to the windows within in the given time range.
|
KeyValueIterator<Windowed<K>,V> |
fetchAll(long timeFrom,
long timeTo)
Gets all the key-value pairs that belong to the windows within in the given time range.
|
void |
put(K key,
V value)
Use the current record timestamp as the
windowStartTimestamp and
delegate to put(Object, Object, long) . |
void |
put(K key,
V value,
long windowStartTimestamp)
Put a key-value pair with the given timestamp into the corresponding window
|
close, flush, init, isOpen, name, persistent
all, fetch
void put(K key, V value)
windowStartTimestamp
and
delegate to put(Object, Object, long)
.
It's highly recommended to use put(Object, Object, long)
instead, as the record timestamp
is unlikely to be the correct windowStartTimestamp in general.key
- The key to associate the value tovalue
- The value to update, it can be null;
if the serialized bytes are also null it is interpreted as deletesjava.lang.NullPointerException
- If null is used for key.void put(K key, V value, long windowStartTimestamp)
key
- The key to associate the value tovalue
- The value; can be nullwindowStartTimestamp
- The timestamp of the beginning of the window to put the key/value intojava.lang.NullPointerException
- If null is used for key.WindowStoreIterator<V> fetch(K key, long timeFrom, long timeTo)
This iterator must be closed after use.
The time range is inclusive and applies to the starting timestamp of the window. For example, if we have the following windows:
+-------------------------------+ | key | start time | end time | +-------+------------+----------+ | A | 10 | 20 | +-------+------------+----------+ | A | 15 | 25 | +-------+------------+----------+ | A | 20 | 30 | +-------+------------+----------+ | A | 25 | 35 | +--------------------------------And we call
store.fetch("A", 10, 20)
then the results will contain the first
three windows from the table above, i.e., all those where 10 <= start time <= 20.
For each key, the iterator guarantees ordering of windows, starting from the oldest/earliest available window to the newest/latest window.
fetch
in interface ReadOnlyWindowStore<K,V>
key
- the key to fetchtimeFrom
- time range start (inclusive)timeTo
- time range end (inclusive)<timestamp, value>
InvalidStateStoreException
- if the store is not initializedjava.lang.NullPointerException
- If null
is used for key.default WindowStoreIterator<V> fetch(K key, java.time.Instant from, java.time.Instant to)
ReadOnlyWindowStore
This iterator must be closed after use.
The time range is inclusive and applies to the starting timestamp of the window. For example, if we have the following windows:
+-------------------------------+ | key | start time | end time | +-------+------------+----------+ | A | 10 | 20 | +-------+------------+----------+ | A | 15 | 25 | +-------+------------+----------+ | A | 20 | 30 | +-------+------------+----------+ | A | 25 | 35 | +--------------------------------And we call
store.fetch("A", Instant.ofEpochMilli(10), Instant.ofEpochMilli(20))
then the results will contain the first
three windows from the table above, i.e., all those where 10 <= start time <= 20.
For each key, the iterator guarantees ordering of windows, starting from the oldest/earliest available window to the newest/latest window.
fetch
in interface ReadOnlyWindowStore<K,V>
key
- the key to fetchfrom
- time range start (inclusive)<timestamp, value>
KeyValueIterator<Windowed<K>,V> fetch(K from, K to, long timeFrom, long timeTo)
This iterator must be closed after use.
fetch
in interface ReadOnlyWindowStore<K,V>
from
- the first key in the rangeto
- the last key in the rangetimeFrom
- time range start (inclusive)timeTo
- time range end (inclusive)<Windowed<K>, value>
InvalidStateStoreException
- if the store is not initializedjava.lang.NullPointerException
- If null
is used for any key.default KeyValueIterator<Windowed<K>,V> fetch(K from, K to, java.time.Instant fromTime, java.time.Instant toTime)
ReadOnlyWindowStore
This iterator must be closed after use.
fetch
in interface ReadOnlyWindowStore<K,V>
from
- the first key in the rangeto
- the last key in the rangefromTime
- time range start (inclusive)toTime
- time range end (inclusive)<Windowed<K>, value>
KeyValueIterator<Windowed<K>,V> fetchAll(long timeFrom, long timeTo)
fetchAll
in interface ReadOnlyWindowStore<K,V>
timeFrom
- the beginning of the time slot from which to search (inclusive)timeTo
- the end of the time slot from which to search (inclusive)<Windowed<K>, value>
InvalidStateStoreException
- if the store is not initializedjava.lang.NullPointerException
- if null
is used for any keydefault KeyValueIterator<Windowed<K>,V> fetchAll(java.time.Instant from, java.time.Instant to)
ReadOnlyWindowStore
fetchAll
in interface ReadOnlyWindowStore<K,V>
from
- the beginning of the time slot from which to search (inclusive)to
- the end of the time slot from which to search (inclusive)<Windowed<K>, value>