在Apache Flink中使用DynamoDB流

时间:2017-08-01 11:21:37

标签: amazon-dynamodb apache-flink amazon-dynamodb-streams

有人试图在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

1 个答案:

答案 0 :(得分:2)

更新的答案

似乎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)。