私は以下の要件を持つアプリケーションの構築に取り組んでおり、flink を使い始めたばかりです。
- たとえば 50 個のパーティションを使用してデータを Kafka に取り込みます (受信レート - 100,000 メッセージ/秒)
- Kafka からデータを読み取り、各データを処理します (計算を実行し、古いデータと比較するなど) リアルタイム
- 出力を Cassandra に保存する
私はリアルタイム ストリーミング プラットフォームを探していましたが、Flink がリアルタイムとバッチの両方に最適であることがわかりました。
- flink が私のユースケースに最適だと思いますか?それとも、Storm、Spark ストリーミング、またはその他のストリーミング プラットフォームを使用する必要がありますか?
- flink で一連のステップを実行するには、Google データ フローにデータ パイプラインを記述する必要がありますか?それとも、リアルタイム ストリーミングの一連のステップを実行する他の方法はありますか?
- 各計算に 20 ミリ秒かかるとしたら、どうすれば flink を使用してより適切に設計し、スループットを向上させることができるでしょうか。
- Redis または Cassandra を使用して、計算ごとに flink 内でデータを取得できますか?
- flink 内で JVM メモリ内キャッシュを使用できますか?
- また、ある時間枠 (例: 5 秒) のキーに基づいてデータを集計することもできます。たとえば、100 件のメッセージが着信し、10 件のメッセージが同じキーを持つとします。同じキーを持つすべてのメッセージをグループ化して処理できますか。
- flink を使用したベスト プラクティスに関するチュートリアルはありますか?
皆様のご協力に感謝いたします。