T
- The type of value in the StreamRecord@Internal public final class StreamElementSerializer<T> extends TypeSerializer<StreamElement>
StreamRecord
, Watermark
, LatencyMarker
, and
StreamStatus
.
This does not behave like a normal TypeSerializer
, instead, this is only used at the
stream task/operator level for transmitting StreamRecords and Watermarks.
Modifier and Type | Class and Description |
---|---|
static class |
StreamElementSerializer.StreamElementSerializerConfigSnapshot<T>
Configuration snapshot specific to the
StreamElementSerializer . |
Constructor and Description |
---|
StreamElementSerializer(TypeSerializer<T> serializer) |
Modifier and Type | Method and Description |
---|---|
boolean |
canEqual(Object obj)
Returns true if the given object can be equaled with this object.
|
void |
copy(DataInputView source,
DataOutputView target)
Copies exactly one record from the source input view to the target output view.
|
StreamElement |
copy(StreamElement from)
Creates a deep copy of the given element in a new element.
|
StreamElement |
copy(StreamElement from,
StreamElement reuse)
Creates a copy from the given element.
|
StreamRecord<T> |
createInstance()
Creates a new instance of the data type.
|
StreamElement |
deserialize(DataInputView source)
De-serializes a record from the given source input view.
|
StreamElement |
deserialize(StreamElement reuse,
DataInputView source)
De-serializes a record from the given source input view into the given reuse record instance if mutable.
|
StreamElementSerializer<T> |
duplicate()
Creates a deep copy of this serializer if it is necessary, i.e.
|
CompatibilityResult<StreamElement> |
ensureCompatibility(TypeSerializerConfigSnapshot<?> configSnapshot)
This method is deprecated.
|
boolean |
equals(Object obj) |
TypeSerializer<T> |
getContainedTypeSerializer() |
int |
getLength()
Gets the length of the data type, if it is a fix length data type.
|
int |
hashCode() |
boolean |
isImmutableType()
Gets whether the type is an immutable type.
|
void |
serialize(StreamElement value,
DataOutputView target)
Serializes the given record to the given target output view.
|
StreamElementSerializer.StreamElementSerializerConfigSnapshot<T> |
snapshotConfiguration()
Snapshots the configuration of this TypeSerializer.
|
public StreamElementSerializer(TypeSerializer<T> serializer)
public TypeSerializer<T> getContainedTypeSerializer()
public boolean isImmutableType()
TypeSerializer
isImmutableType
in class TypeSerializer<StreamElement>
public StreamElementSerializer<T> duplicate()
TypeSerializer
duplicate
in class TypeSerializer<StreamElement>
public StreamRecord<T> createInstance()
TypeSerializer
createInstance
in class TypeSerializer<StreamElement>
public int getLength()
TypeSerializer
getLength
in class TypeSerializer<StreamElement>
-1
for variable length data types.public StreamElement copy(StreamElement from)
TypeSerializer
copy
in class TypeSerializer<StreamElement>
from
- The element reuse be copied.public StreamElement copy(StreamElement from, StreamElement reuse)
TypeSerializer
copy
in class TypeSerializer<StreamElement>
from
- The element to be copied.reuse
- The element to be reused. May or may not be used.public void copy(DataInputView source, DataOutputView target) throws IOException
TypeSerializer
target.write(source, 8);
.copy
in class TypeSerializer<StreamElement>
source
- The input view from which to read the record.target
- The target output view to which to write the record.IOException
- Thrown if any of the two views raises an exception.public void serialize(StreamElement value, DataOutputView target) throws IOException
TypeSerializer
serialize
in class TypeSerializer<StreamElement>
value
- The record to serialize.target
- The output view to write the serialized data to.IOException
- Thrown, if the serialization encountered an I/O related error. Typically raised by the
output view, which may have an underlying I/O channel to which it delegates.public StreamElement deserialize(DataInputView source) throws IOException
TypeSerializer
deserialize
in class TypeSerializer<StreamElement>
source
- The input view from which to read the data.IOException
- Thrown, if the de-serialization encountered an I/O related error. Typically raised by the
input view, which may have an underlying I/O channel from which it reads.public StreamElement deserialize(StreamElement reuse, DataInputView source) throws IOException
TypeSerializer
deserialize
in class TypeSerializer<StreamElement>
reuse
- The record instance into which to de-serialize the data.source
- The input view from which to read the data.IOException
- Thrown, if the de-serialization encountered an I/O related error. Typically raised by the
input view, which may have an underlying I/O channel from which it reads.public boolean equals(Object obj)
equals
in class TypeSerializer<StreamElement>
public boolean canEqual(Object obj)
TypeSerializer
canEqual
in class TypeSerializer<StreamElement>
obj
- Object which wants to take part in the equality relationpublic int hashCode()
hashCode
in class TypeSerializer<StreamElement>
public StreamElementSerializer.StreamElementSerializerConfigSnapshot<T> snapshotConfiguration()
TypeSerializer
The snapshot of the TypeSerializer is supposed to contain all information that affects the serialization format of the serializer. The snapshot serves two purposes: First, to reproduce the serializer when the checkpoint/savepoint is restored, and second, to check whether the serialization format is compatible with the serializer used in the restored program.
IMPORTANT: TypeSerializerSnapshots changed after Flink 1.6. Serializers implemented against Flink versions up to 1.6 should still work, but adjust to new model to enable state evolution and be future-proof. See the class-level comments, section "Upgrading TypeSerializers to the new TypeSerializerSnapshot model" for details.
snapshotConfiguration
in class TypeSerializer<StreamElement>
null
).TypeSerializerSnapshot.resolveSchemaCompatibility(TypeSerializer)
public CompatibilityResult<StreamElement> ensureCompatibility(TypeSerializerConfigSnapshot<?> configSnapshot)
TypeSerializer
TypeSerializerSnapshot.resolveSchemaCompatibility(TypeSerializer)
.
New serializers should not override this method any more! Serializers implemented against Flink versions up to 1.6 should still work, but should adjust to new model to enable state evolution and be future-proof. See the class-level comments, section "Upgrading TypeSerializers to the new TypeSerializerSnapshot model" for details.
ensureCompatibility
in class TypeSerializer<StreamElement>
Copyright © 2014–2020 The Apache Software Foundation. All rights reserved.