2017-08-01 102 views
1

DynamoDB流有没有人尝试消耗DynamoDB在Apache中弗林克流?消耗阿帕奇弗林克

弗林克有室壁运动的消费者。但我正在寻找如何直接使用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

修订ANSWER

看来,阿帕奇弗林克不使用DynamoDB流连接器adapter,因此它可以从室壁运动读取数据,但它不能从DynamoDB读取数据。

我认为一个选项,可以实现从DynamoDB流至室壁运动,然后在Apache中弗林克并处理它读取数据的Kinesis将写入数据的应用程序。

另一种选择是实现对Apache弗林克定制DynamoDB连接器。您可以使用existing connector作为起点。你

也可以看看的Apache Spark Kinesis connector。但它似乎也有同样的问题。

原来的答案

DynamoDB具有室壁运动适配器,让您使用消耗Kinesis Client Library DynamoDB更新流。使用Kinesis适配器是推荐使用DynamoDB更新的方式(根据AWS)。这将为您提供与使用DynamoDB流直接相同的数据(也称为DynamoDB低级API)。

+0

嗨伊万,没有围绕着如何使用此适配器足够的文档。我运行了示例代码,但是这仍然没有给出我如何在flink中添加源代码的想法。我必须在flink中创建自定义源代码吗? Flink的文档也不多说。示例示例会很有帮助。 –

+0

我在想写lambda函数来将kineodb流写入kinesis。不确定从性能和成本角度来看解决方案有多好。每秒超过500次写入,lambda函数被调用的次数将是一个很大的数字。这是一个很好的选择吗? –

+0

每秒500次写入每月大约写入21M次。如果你为这个功能分配128MB,每次执行需要0.2秒,根据这个计算,你将每月支付约4美元(https://aws.amazon.com/lambda/pricing/) –