public class WindowKeySchema extends java.lang.Object implements SegmentedBytesStore.KeySchema
Constructor and Description |
---|
WindowKeySchema() |
Modifier and Type | Method and Description |
---|---|
static <K> K |
extractStoreKey(byte[] binaryKey,
StateSerdes<K,?> serdes) |
static byte[] |
extractStoreKeyBytes(byte[] binaryKey) |
static int |
extractStoreSequence(byte[] binaryKey) |
static long |
extractStoreTimestamp(byte[] binaryKey) |
static Window |
extractStoreWindow(byte[] binaryKey,
long windowSize) |
static <K> Windowed<K> |
from(byte[] binaryKey,
long windowSize,
org.apache.kafka.common.serialization.Deserializer<K> deserializer,
java.lang.String topic) |
static Windowed<org.apache.kafka.common.utils.Bytes> |
fromStoreKey(byte[] binaryKey,
long windowSize) |
static <K> Windowed<K> |
fromStoreKey(byte[] binaryKey,
long windowSize,
StateSerdes<K,?> serdes) |
org.apache.kafka.streams.state.internals.HasNextCondition |
hasNextCondition(org.apache.kafka.common.utils.Bytes binaryKeyFrom,
org.apache.kafka.common.utils.Bytes binaryKeyTo,
long from,
long to)
Create an implementation of
HasNextCondition that knows when
to stop iterating over the Segments. |
org.apache.kafka.common.utils.Bytes |
lowerRange(org.apache.kafka.common.utils.Bytes key,
long from)
Given a range of record keys and a time, construct a Segmented key that represents
the lower range of keys to search when performing range queries.
|
org.apache.kafka.common.utils.Bytes |
lowerRangeFixedSize(org.apache.kafka.common.utils.Bytes key,
long from)
Given a range of fixed size record keys and a time, construct a Segmented key that represents
the lower range of keys to search when performing range queries.
|
java.util.List<org.apache.kafka.streams.state.internals.Segment> |
segmentsToSearch(org.apache.kafka.streams.state.internals.Segments segments,
long from,
long to)
Used during
SegmentedBytesStore.fetch(Bytes, long, long) operations to determine
which segments should be scanned. |
long |
segmentTimestamp(org.apache.kafka.common.utils.Bytes key)
Extract the timestamp of the segment from the key.
|
static TimeWindow |
timeWindowForSize(long startMs,
long windowSize)
Safely construct a time window of the given size,
taking care of bounding endMs to Long.MAX_VALUE if necessary
|
static <K> byte[] |
toBinary(Windowed<K> timeKey,
org.apache.kafka.common.serialization.Serializer<K> serializer,
java.lang.String topic) |
static org.apache.kafka.common.utils.Bytes |
toStoreKeyBinary(org.apache.kafka.common.utils.Bytes key,
long timestamp,
int seqnum) |
static <K> org.apache.kafka.common.utils.Bytes |
toStoreKeyBinary(K key,
long timestamp,
int seqnum,
StateSerdes<K,?> serdes) |
static org.apache.kafka.common.utils.Bytes |
toStoreKeyBinary(Windowed<org.apache.kafka.common.utils.Bytes> timeKey,
int seqnum) |
static <K> org.apache.kafka.common.utils.Bytes |
toStoreKeyBinary(Windowed<K> timeKey,
int seqnum,
StateSerdes<K,?> serdes) |
org.apache.kafka.common.utils.Bytes |
upperRange(org.apache.kafka.common.utils.Bytes key,
long to)
Given a range of record keys and a time, construct a Segmented key that represents
the upper range of keys to search when performing range queries.
|
org.apache.kafka.common.utils.Bytes |
upperRangeFixedSize(org.apache.kafka.common.utils.Bytes key,
long to)
Given a range of fixed size record keys and a time, construct a Segmented key that represents
the upper range of keys to search when performing range queries.
|
public org.apache.kafka.common.utils.Bytes upperRange(org.apache.kafka.common.utils.Bytes key, long to)
SegmentedBytesStore.KeySchema
upperRange
in interface SegmentedBytesStore.KeySchema
SessionKeySchema.upperRange(org.apache.kafka.common.utils.Bytes, long)
,
upperRange(org.apache.kafka.common.utils.Bytes, long)
public org.apache.kafka.common.utils.Bytes lowerRange(org.apache.kafka.common.utils.Bytes key, long from)
SegmentedBytesStore.KeySchema
lowerRange
in interface SegmentedBytesStore.KeySchema
SessionKeySchema.lowerRange(org.apache.kafka.common.utils.Bytes, long)
,
lowerRange(org.apache.kafka.common.utils.Bytes, long)
public org.apache.kafka.common.utils.Bytes lowerRangeFixedSize(org.apache.kafka.common.utils.Bytes key, long from)
SegmentedBytesStore.KeySchema
lowerRangeFixedSize
in interface SegmentedBytesStore.KeySchema
key
- the first key in the rangefrom
- the first timestamp in the rangeSessionKeySchema.lowerRange(org.apache.kafka.common.utils.Bytes, long)
,
lowerRange(org.apache.kafka.common.utils.Bytes, long)
public org.apache.kafka.common.utils.Bytes upperRangeFixedSize(org.apache.kafka.common.utils.Bytes key, long to)
SegmentedBytesStore.KeySchema
upperRangeFixedSize
in interface SegmentedBytesStore.KeySchema
key
- the last key in the rangeto
- the last timestamp in the rangeSessionKeySchema.upperRange(org.apache.kafka.common.utils.Bytes, long)
,
upperRange(org.apache.kafka.common.utils.Bytes, long)
public long segmentTimestamp(org.apache.kafka.common.utils.Bytes key)
SegmentedBytesStore.KeySchema
segmentTimestamp
in interface SegmentedBytesStore.KeySchema
SessionKeySchema.lowerRange(org.apache.kafka.common.utils.Bytes, long)
,
lowerRange(org.apache.kafka.common.utils.Bytes, long)
public org.apache.kafka.streams.state.internals.HasNextCondition hasNextCondition(org.apache.kafka.common.utils.Bytes binaryKeyFrom, org.apache.kafka.common.utils.Bytes binaryKeyTo, long from, long to)
SegmentedBytesStore.KeySchema
HasNextCondition
that knows when
to stop iterating over the Segments. Used during SegmentedBytesStore.fetch(Bytes, Bytes, long, long)
operationshasNextCondition
in interface SegmentedBytesStore.KeySchema
binaryKeyFrom
- the first key in the rangebinaryKeyTo
- the last key in the rangefrom
- starting time rangeto
- ending time rangepublic java.util.List<org.apache.kafka.streams.state.internals.Segment> segmentsToSearch(org.apache.kafka.streams.state.internals.Segments segments, long from, long to)
SegmentedBytesStore.KeySchema
SegmentedBytesStore.fetch(Bytes, long, long)
operations to determine
which segments should be scanned.segmentsToSearch
in interface SegmentedBytesStore.KeySchema
public static TimeWindow timeWindowForSize(long startMs, long windowSize)
public static <K> byte[] toBinary(Windowed<K> timeKey, org.apache.kafka.common.serialization.Serializer<K> serializer, java.lang.String topic)
public static <K> Windowed<K> from(byte[] binaryKey, long windowSize, org.apache.kafka.common.serialization.Deserializer<K> deserializer, java.lang.String topic)
public static org.apache.kafka.common.utils.Bytes toStoreKeyBinary(org.apache.kafka.common.utils.Bytes key, long timestamp, int seqnum)
public static <K> org.apache.kafka.common.utils.Bytes toStoreKeyBinary(K key, long timestamp, int seqnum, StateSerdes<K,?> serdes)
public static org.apache.kafka.common.utils.Bytes toStoreKeyBinary(Windowed<org.apache.kafka.common.utils.Bytes> timeKey, int seqnum)
public static <K> org.apache.kafka.common.utils.Bytes toStoreKeyBinary(Windowed<K> timeKey, int seqnum, StateSerdes<K,?> serdes)
public static byte[] extractStoreKeyBytes(byte[] binaryKey)
public static <K> K extractStoreKey(byte[] binaryKey, StateSerdes<K,?> serdes)
public static long extractStoreTimestamp(byte[] binaryKey)
public static int extractStoreSequence(byte[] binaryKey)
public static <K> Windowed<K> fromStoreKey(byte[] binaryKey, long windowSize, StateSerdes<K,?> serdes)
public static Windowed<org.apache.kafka.common.utils.Bytes> fromStoreKey(byte[] binaryKey, long windowSize)
public static Window extractStoreWindow(byte[] binaryKey, long windowSize)