在 Apache Flink 中使用 DynamoDB 流

Consume DynamoDB streams in Apache Flink

有人试过在 Apache Flink 中使用 DynamoDB 流吗?

Flink 有一个 Kinesis 消费者。但我正在寻找如何直接使用 Dynamo 流。

DataStream<String> kinesis = env.addSource(new FlinkKinesisConsumer<>(
    "kinesis_stream_name", new SimpleStringSchema(), consumerConfig));

我尝试了很多搜索,但没有找到任何东西。但是发现了一个待处理的 Flink Jira 板的开放请求。所以我猜这个选项还不可用?我有什么选择?

Allow FlinkKinesisConsumer to adapt for AWS DynamoDB Streams

更新答案 - 2019

FlinkKinesisConsumer connector can now process a DynamoDB stream after this JIRA ticket 已实施。

更新的答案

Apache Flink好像没有使用DynamoDB流连接器adapter,所以它可以从Kinesis读取数据,但是不能从DynamoDB读取数据。

我认为一种选择是实施一个应用程序,将数据从 DynamoDB 流写入 Kinesis,然后在 Apache Flink 中从 Kinesis 读取数据并进行处理。

另一种选择是为 Apache Flink 实施自定义 DynamoDB 连接器。您可以使用 existing connector 作为起点。

也可以看看Apache Spark Kinesis connector。但是好像也有同样的问题

原始答案

DynamoDB 有一个 Kinesis 适配器,允许您使用 Kinesis Client Library 使用 DynamoDB 更新流。使用 Kinesis 适配器是从 DynamoDB 使用更新的推荐方式(根据 AWS)。这将为您提供与直接使用 DynamoDB 流相同的数据(也称为 DynamoDB 低级 API)。