有人试图在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
答案 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)。