[ 
https://issues.apache.org/jira/browse/FLINK-24228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Zichen Liu closed FLINK-24228.
------------------------------
    Resolution: Fixed

> [FLIP-171] Firehose implementation of Async Sink
> ------------------------------------------------
>
>                 Key: FLINK-24228
>                 URL: https://issues.apache.org/jira/browse/FLINK-24228
>             Project: Flink
>          Issue Type: New Feature
>          Components: Connectors / Kinesis
>            Reporter: Zichen Liu
>            Assignee: Zichen Liu
>            Priority: Major
>              Labels: pull-request-available, stale-assigned
>             Fix For: 1.15.0
>
>
> h2. Motivation
> *User stories:*
> As a Flink user, I’d like to use Kinesis Firehose as sink for my data 
> pipeline.
> *Scope:*
>  * Implement an asynchronous sink for Kinesis Firehose by inheriting the 
> AsyncSinkBase class. The implementation can for now reside in its own module 
> in flink-connectors. The module and package name can be anything reasonable 
> e.g. {{flink-connector-aws-kinesis}} for the module name and 
> {{org.apache.flink.connector.aws.kinesis}} for the package name.
>  * The implementation must use [the Kinesis Java 
> Client|https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/kinesis/AmazonKinesisClient.html].
>  * The implementation must allow users to configure the Kinesis Client, with 
> reasonable default settings.
>  * Implement an asynchornous sink writer for Firehose by extending the 
> AsyncSinkWriter. The implementation must deal with failed requests and retry 
> them using the {{requeueFailedRequestEntry}} method. If possible, the 
> implementation should batch multiple requests (PutRecordsRequestEntry 
> objects) to Firehose for increased throughput. The implemented Sink Writer 
> will be used by the Sink class that will be created as part of this story.
>  * Unit/Integration testing. Use Kinesalite (in-memory Kinesis simulation). 
> We already use this in {{{}KinesisTableApiITCase{}}}.
>  * Java / code-level docs.
>  * End to end testing: add tests that hits a real AWS instance. (How to best 
> donate resources to the Flink project to allow this to happen?)
> h2. References
> More details to be found 
> [https://cwiki.apache.org/confluence/display/FLINK/FLIP-171%3A+Async+Sink]
>  
> *Update:*
> ^^ Status Update ^^
> _{_}List of all work outstanding for 1.15 release{_}_
> [Merged] [https://github.com/apache/flink/pull/18165] - KDS DataStream Docs
> [Merged] [https://github.com/apache/flink/pull/18396] - [hotfix] for infinte 
> loop if not flushing during commit
> [Merged] [https://github.com/apache/flink/pull/18421] - Mark Kinesis Producer 
> as deprecated (Prod: FLINK-24227)
> [Merged] [https://github.com/apache/flink/pull/18348] - KDS Table API Sink & 
> Docs
> [Merged] [https://github.com/apache/flink/pull/18488] - base sink retry 
> entries in order not in reverse
> [Merged] [https://github.com/apache/flink/pull/18512] - changing failed 
> requests handler to accept List in AsyncSinkWriter
> [Merged] [https://github.com/apache/flink/pull/18483] - Do not expose the 
> element converter
> [Merged] [https://github.com/apache/flink/pull/18468] - Adding Kinesis data 
> streams sql uber-jar
> Ready for review:
> [SUCCESS ] [https://github.com/apache/flink/pull/18314] - KDF DataStream Sink 
> & Docs
> [BLOCKED on ^^ ] [https://github.com/apache/flink/pull/18426] - rename 
> flink-connector-aws-kinesis-data-* to flink-connector-aws-kinesis-* (module 
> names) and KinesisData*Sink to Kinesis*Sink (class names)
> Pending PR:
>  * Firehose Table API Sink & Docs
>  * KDF Table API SQL jar
> TBD:
>  * FLINK-25846: Not shutting down
>  * FLINK-25848: Validation during start up
>  * FLINK-25792: flush() bug
>  * FLINK-25793: throughput exceeded
>  * Update the defaults of KDS sink and update the docs + do the same for KDF
>  * add a `AsyncSinkCommonConfig` class (to wrap the 6 params) to the 
> `flink-connector-base` and propagate it to the two connectors
>  -- 
>  --- 
>  ---- 
>  ----- 
>  ------ 
>  ------- 
>  -------- 
>  --------- 
>  ---------- 
>  ----------- 
>  ------------ 
>  ------------- feature freeze
>  * KDS performance testing
>  * KDF performance testing
>  * Clone the new docs to .../contents.zh/... and add the location to the 
> corresponding Chinese translation jira - KDS -
>  * Rename [Amazon AWS Kinesis Streams] to [Amazon Kinesis Data Streams] in 
> docs (legacy issue)
>  -- 
>  --- 
>  ---- 
>  ----- 
>  ------ 
>  ------- 
>  -------- 
>  --------- 
>  ---------- 
>  ----------- 
>  ------------ 
>  ------------- Flink 1.15 release
>  * KDS end to end sanity test - hits aws apis rather than local docker images
>  * KDS Python wrappers
>  * FLINK-25733 - Create A migration guide for Kinesis Table API connector - 
> can happen after 1.15
>  * If `endpoint` is provided, `region` should not be required like it 
> currently is
>  * Test if Localstack container requires the 10000ms timeout
>  * Adaptive level of logging (in discussion)
> FYI:
>  * FLINK-25661 - Add Custom Fatal Exception handler in AsyncSinkWriter - 
> [https://github.com/apache/flink/pull/18449]
>  * https://issues.apache.org/jira/browse/FLINK-24229 DDB Sink
> Chinese translation:
> https://issues.apache.org/jira/browse/FLINK-25735 - KDS DataStream Sink
> https://issues.apache.org/jira/browse/FLINK-25736 - KDS Table API Sink
> https://issues.apache.org/jira/browse/FLINK-25737 - KDF DataStream Sink



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to