K
- Type of keysV
- Type of valuespublic interface ReadOnlyWindowStore<K,V>
Note: The current implementation of either forward or backward fetches on range-key-range-time does not obey the ordering when there are multiple local stores hosted on that instance. For example, if there are two stores from two tasks hosting keys {1,3} and {2,4}, then a range query of key [1,4] would return in the order of [1,3,2,4] but not [1,2,3,4] since it is just looping over the stores only.
Modifier and Type | Method and Description |
---|---|
KeyValueIterator<Windowed<K>,V> |
all()
Gets all the key-value pairs in the existing windows.
|
default KeyValueIterator<Windowed<K>,V> |
backwardAll()
Gets all the key-value pairs in the existing windows in backward order
with respect to time (from end to beginning of time).
|
default WindowStoreIterator<V> |
backwardFetch(K key,
Instant timeFrom,
Instant timeTo)
Get all the key-value pairs with the given key and the time range from all the existing windows
in backward order with respect to time (from end to beginning of time).
|
default KeyValueIterator<Windowed<K>,V> |
backwardFetch(K keyFrom,
K keyTo,
Instant timeFrom,
Instant timeTo)
Get all the key-value pairs in the given key range and time range from all the existing windows
in backward order with respect to time (from end to beginning of time).
|
default KeyValueIterator<Windowed<K>,V> |
backwardFetchAll(Instant timeFrom,
Instant timeTo)
Gets all the key-value pairs that belong to the windows within in the given time range in backward order
with respect to time (from end to beginning of time).
|
WindowStoreIterator<V> |
fetch(K key,
Instant timeFrom,
Instant timeTo)
Get all the key-value pairs with the given key and the time range from all the existing windows.
|
KeyValueIterator<Windowed<K>,V> |
fetch(K keyFrom,
K keyTo,
Instant timeFrom,
Instant timeTo)
Get all the key-value pairs in the given key range and time range from all the existing windows.
|
V |
fetch(K key,
long time)
Get the value of key from a window.
|
KeyValueIterator<Windowed<K>,V> |
fetchAll(Instant timeFrom,
Instant timeTo)
Gets all the key-value pairs that belong to the windows within in the given time range.
|
V fetch(K key, long time)
key
- the key to fetchtime
- start timestamp (inclusive) of the windownull
if no value is found in the windowInvalidStateStoreException
- if the store is not initializedNullPointerException
- if null
is used for any key.WindowStoreIterator<V> fetch(K key, Instant timeFrom, Instant timeTo) throws IllegalArgumentException
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.
key
- the key to fetchtimeFrom
- time range start (inclusive), where iteration starts.timeTo
- time range end (inclusive), where iteration ends.<timestamp, value>
, from beginning to end of time.InvalidStateStoreException
- if the store is not initializedNullPointerException
- if null
is used for key.IllegalArgumentException
- if duration is negative or can't be represented as long milliseconds
default WindowStoreIterator<V> backwardFetch(K key, Instant timeFrom, Instant timeTo) throws IllegalArgumentException
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.backwardFetch("A", Instant.ofEpochMilli(10), Instant.ofEpochMilli(20))
then the
results will contain the first three windows from the table above in backward order,
i.e., all those where 10 <= start time <= 20.
For each key, the iterator guarantees ordering of windows, starting from the newest/latest available window to the oldest/earliest window.
key
- the key to fetchtimeFrom
- time range start (inclusive), where iteration ends.timeTo
- time range end (inclusive), where iteration starts.<timestamp, value>
, from end to beginning of time.InvalidStateStoreException
- if the store is not initializedNullPointerException
- if null
is used for key.IllegalArgumentException
- if duration is negative or can't be represented as long milliseconds
KeyValueIterator<Windowed<K>,V> fetch(K keyFrom, K keyTo, Instant timeFrom, Instant timeTo) throws IllegalArgumentException
This iterator must be closed after use.
keyFrom
- the first key in the range
A null value indicates a starting position from the first element in the store.keyTo
- the last key in the range
A null value indicates that the range ends with the last element in the store.timeFrom
- time range start (inclusive), where iteration starts.timeTo
- time range end (inclusive), where iteration ends.<Windowed<K>, value>
, from beginning to end of time.InvalidStateStoreException
- if the store is not initializedIllegalArgumentException
- if duration is negative or can't be represented as long milliseconds
default KeyValueIterator<Windowed<K>,V> backwardFetch(K keyFrom, K keyTo, Instant timeFrom, Instant timeTo) throws IllegalArgumentException
This iterator must be closed after use.
keyFrom
- the first key in the range
A null value indicates a starting position from the first element in the store.keyTo
- the last key in the range
A null value indicates that the range ends with the last element in the store.timeFrom
- time range start (inclusive), where iteration ends.timeTo
- time range end (inclusive), where iteration starts.<Windowed<K>, value>
, from end to beginning of time.InvalidStateStoreException
- if the store is not initializedIllegalArgumentException
- if duration is negative or can't be represented as long milliseconds
KeyValueIterator<Windowed<K>,V> all()
<Windowed<K>, value>
, from beginning to end of time.InvalidStateStoreException
- if the store is not initializeddefault KeyValueIterator<Windowed<K>,V> backwardAll()
<Windowed<K>, value>
, from the end to beginning of time.InvalidStateStoreException
- if the store is not initializedKeyValueIterator<Windowed<K>,V> fetchAll(Instant timeFrom, Instant timeTo) throws IllegalArgumentException
timeFrom
- the beginning of the time slot from which to search (inclusive), where iteration starts.timeTo
- the end of the time slot from which to search (inclusive), where iteration ends.<Windowed<K>, value>
, from beginning to end of time.InvalidStateStoreException
- if the store is not initializedNullPointerException
- if null
is used for any keyIllegalArgumentException
- if duration is negative or can't be represented as long milliseconds
default KeyValueIterator<Windowed<K>,V> backwardFetchAll(Instant timeFrom, Instant timeTo) throws IllegalArgumentException
timeFrom
- the beginning of the time slot from which to search (inclusive), where iteration ends.timeTo
- the end of the time slot from which to search (inclusive), where iteration starts.<Windowed<K>, value>
, from end to beginning of time.InvalidStateStoreException
- if the store is not initializedNullPointerException
- if null
is used for any keyIllegalArgumentException
- if duration is negative or can't be represented as long milliseconds