[FLINK-24229][connectors/dynamodb] Added DynamoDB connector
What is the purpose of the change
User stories:
As a Flink user, I’d like to use DynamoDB as sink for my data pipeline.
Scope:
- Implement an asynchronous sink for DynamoDB by inheriting the AsyncSinkBase class.
- The implementation can for now reside in its own module in flink-connectors.
- Implement an asynchornous sink writer for DynamoDB by extending the AsyncSinkWriter. The implementation must deal with failed requests and retry them using the requeueFailedRequestEntry method.
- The implementation should utilize DynamoDb batch API.
- The implemented Sink Writer will be used by the Sink class that is created as part of this story.
- Java / code-level docs.
- Unit/Integration testing.
Brief change log
- Added new DynamoDB Sink into a new module flink-connectors/flink-connector-dynamodb
Verifying this change
This change added tests and can be verified as follows:
- Integration tests in org.apache.flink.streaming.connectors.dynamodb.sink.DynamoDbSinkITCase
Does this pull request potentially affect one of the following parts:
- Dependencies (does it add or upgrade a dependency): no
- The public API, i.e., is any changed class annotated with
@Public(Evolving): no - The serializers: no
- The runtime per-record code paths (performance sensitive): yes
- Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
- The S3 file system connector: no
Documentation
- Does this pull request introduce a new feature? yes
- If yes, how is the feature documented? JavaDocs
Thanks a lot for your contribution to the Apache Flink project. I'm the @flinkbot. I help the community to review your pull request. We will use this comment to track the progress of the review.
Automated Checks
Last check on commit 8ec1f57053a8f98ca61b1ff7ad090d789476d45b (Wed Jan 26 09:57:33 UTC 2022)
Warnings:
- 3 pom.xml files were touched: Check for build and licensing issues.
- No documentation files were touched! Remember to keep the Flink docs up to date!
Mention the bot in a comment to re-run the automated checks.
Review Progress
- ❓ 1. The [description] looks good.
- ❓ 2. There is [consensus] that the contribution should go into to Flink.
- ❓ 3. Needs [attention] from.
- ❓ 4. The change fits into the overall [architecture].
- ❓ 5. Overall code [quality] is good.
Please see the Pull Request Review Guide for a full explanation of the review process.Bot commands
The @flinkbot bot supports the following commands:
@flinkbot approve descriptionto approve one or more aspects (aspects:description,consensus,architectureandquality)@flinkbot approve allto approve all aspects@flinkbot approve-until architectureto approve everything untilarchitecture@flinkbot attention @username1 [@username2 ..]to require somebody's attention@flinkbot disapprove architectureto remove an approval you gave earlier
CI report:
- c770f763d6b02b165c28903f4dad25f5bc28b146 Azure: FAILURE
- a00ce4c79f9da5e14b37f2903ace534f1c9f1396 UNKNOWN
Bot commands
The @flinkbot bot supports the following commands:@flinkbot run azurere-run the last Azure build
Closing this pull request as it was moved to a separate flink-connector-dynamodb repository: https://github.com/apache/flink-connector-dynamodb/pull/1