public interface KinesisIOOptions extends PipelineOptions
KinesisIO
.
Allows passing modify-able configurations in cases when some runner implementation persists
KinesisIO.Read
serialized objects. Adding new configurations to this class should be
exceptional, and standard KinesisIO.Read
/ KinesisIO.Write
should be preferred in
most of the cases.
This class appeared during the implementation of EFO consumer. In Flink runner, KinesisIO.Read
is serialized with the entire KinesisSource
object which was a trouble
for EFO feature design: if consumer ARN is part of KinesisIO.Read object, when started from a
Flink savepoint, consumer ARN string or null value would be forced from the savepoint.
Consequences of this are:
This PipelineOptions
extension allows having modifiable configurations for UnboundedSource.split(int, PipelineOptions)
and UnboundedSource.createReader(PipelineOptions,
UnboundedSource.CheckpointMark)
, which is essential for seamless EFO switch on / off.
Modifier and Type | Interface and Description |
---|---|
static class |
KinesisIOOptions.KinesisIOOptionsRegistrar
A registrar containing the default
KinesisIOOptions . |
static class |
KinesisIOOptions.MapFactory |
PipelineOptions.AtomicLongFactory, PipelineOptions.CheckEnabled, PipelineOptions.DirectRunner, PipelineOptions.JobNameFactory, PipelineOptions.UserAgentFactory
Modifier and Type | Method and Description |
---|---|
java.util.Map<java.lang.String,java.lang.String> |
getKinesisIOConsumerArns()
Used to enable / disable EFO.
|
void |
setKinesisIOConsumerArns(java.util.Map<java.lang.String,java.lang.String> value) |
as, getJobName, getOptionsId, getRunner, getStableUniqueNames, getTempLocation, getUserAgent, outputRuntimeOptions, revision, setJobName, setOptionsId, setRunner, setStableUniqueNames, setTempLocation, setUserAgent
populateDisplayData
@Default.InstanceFactory(value=KinesisIOOptions.MapFactory.class) java.util.Map<java.lang.String,java.lang.String> getKinesisIOConsumerArns()
Example:
--kinesisIOConsumerArns={
"stream-01": "arn:aws:kinesis:...:stream/stream-01/consumer/consumer-01:1678576714",
"stream-02": "arn:aws:kinesis:...:stream/stream-02/consumer/my-consumer:1679576982",
...
}
void setKinesisIOConsumerArns(java.util.Map<java.lang.String,java.lang.String> value)