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, setJobName, setOptionsId, setRunner, setStableUniqueNames, setTempLocation, setUserAgentpopulateDisplayData@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)