Interface KinesisIOOptions
- All Superinterfaces:
HasDisplayData,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:
- Once a Kinesis source is started, its consumer ARN can't be changed without loosing state (checkpoint-ed shard progress).
- Kinesis source can not have seamless enabling / disabling of EFO feature without loosing state (checkpoint-ed shard progress).
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.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classA registrar containing the defaultKinesisIOOptions.static classNested classes/interfaces inherited from interface org.apache.beam.sdk.options.PipelineOptions
PipelineOptions.AtomicLongFactory, PipelineOptions.CheckEnabled, PipelineOptions.DirectRunner, PipelineOptions.JobNameFactory, PipelineOptions.UserAgentFactory -
Method Summary
Modifier and TypeMethodDescriptionUsed to enable / disable EFO.voidsetKinesisIOConsumerArns(Map<String, String> value) Methods inherited from interface org.apache.beam.sdk.transforms.display.HasDisplayData
populateDisplayDataMethods inherited from interface org.apache.beam.sdk.options.PipelineOptions
as, getJobName, getOptionsId, getRunner, getStableUniqueNames, getTempLocation, getUserAgent, outputRuntimeOptions, revision, setJobName, setOptionsId, setRunner, setStableUniqueNames, setTempLocation, setUserAgent
-
Method Details
-
getKinesisIOConsumerArns
Used to enable / disable EFO.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", ... } -
setKinesisIOConsumerArns
-