1

Apache Flinkで誰かがDynamoDBストリームを消費しようとしましたか?Apache FlinkでDynamoDBストリームを使用する

Flinkにはキネシス消費者があります。しかし、私は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

UPDATED ANSWER

キネシスからデータを読み取ることができますが、それはDynamoDBのからデータを読み取ることができませんので、ApacheのFLINKは、DynamoDBのストリームコネクタadapterを使用していないようです。

私は、DynamoDBストリームからKinesisにデータを書き込んだり、Apache FlinkのKinesisからデータを読み込んで処理したりするアプリケーションを実装できると思います。

もう1つの方法として、Apache FlinkのカスタムDynamoDBコネクタを実装する方法があります。 existing connectorを出発点として使用できます。

Apache Spark Kinesis connectorもご覧ください。しかしそれにも同じ問題があるようです。

ORIGINAL ANSWER

DynamoDBのは、あなたがKinesis Client Libraryを使用してDynamoDBの更新の流れを消費することができキネシスアダプタを持っています。 Kinesisアダプタを使用することは、DynamoDBからの更新を消費する(AWSによる)推奨方法です。これにより、DynamoDBストリームを直接使用するデータ(DynamoDB低レベルAPIとも呼ばれます)と同じデータが得られます。

+0

こんにちはIvan、このアダプタの使用方法については十分な文書がありません。私はサンプルコードを実行しましたが、それでも私はソースをflinkに追加する方法について私にはわかりません。私はflinkでカスタムソースを作成する必要がありますか? Flinkのドキュメントもあまり言わない。サンプルの例が役に立ちます。 –

+0

ダイナモストリームをキネシスに書き込むためのラムダ関数を書くことを考えていました。パフォーマンスとコストの観点からソリューションがどれほど優れているかは不明です。 1秒あたり500を超える書き込みでは、ラムダ関数が呼び出された回数は大きな数になります。それは良い選択ですか? –

+0

1秒あたり500件の書き込みは、1か月あたり約21M書き込みです。この関数に128MBを割り当て、各実行に0.2秒かかる場合、この計算(https://aws.amazon.com/lambda/pricing/)に従って毎月$ 4を支払うでしょう。 –

関連する問題