2017-08-01 101 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/) –