flink icon indicating copy to clipboard operation
flink copied to clipboard

[FLINK-24229][connectors/dynamodb] Added DynamoDB connector

Open YuriGusev opened this issue 3 years ago • 2 comments

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

YuriGusev avatar Jan 26 '22 09:01 YuriGusev

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.

The Bot is tracking the review progress through labels. Labels are applied according to the order of the review items. For consensus, approval by a Flink committer of PMC member is required Bot commands The @flinkbot bot supports the following commands:

  • @flinkbot approve description to approve one or more aspects (aspects: description, consensus, architecture and quality)
  • @flinkbot approve all to approve all aspects
  • @flinkbot approve-until architecture to approve everything until architecture
  • @flinkbot attention @username1 [@username2 ..] to require somebody's attention
  • @flinkbot disapprove architecture to remove an approval you gave earlier

flinkbot avatar Jan 26 '22 09:01 flinkbot

CI report:

  • c770f763d6b02b165c28903f4dad25f5bc28b146 Azure: FAILURE
  • a00ce4c79f9da5e14b37f2903ace534f1c9f1396 UNKNOWN
Bot commands The @flinkbot bot supports the following commands:
  • @flinkbot run azure re-run the last Azure build

flinkbot avatar Jan 26 '22 10:01 flinkbot

Closing this pull request as it was moved to a separate flink-connector-dynamodb repository: https://github.com/apache/flink-connector-dynamodb/pull/1

YuriGusev avatar Oct 18 '22 19:10 YuriGusev