まず架空のユースケース。tuples のストリームがあるとしましょう(user_id, time_stamp, login_ip)
。各ユーザーの最終ログイン IP を 5 秒の粒度で維持したいと考えています。
Spark ストリーミングを使用すると、updateStateByKey
メソッドを使用してこのマップを更新できます。問題は、データのストリームが継続的に発生するにつれて、より多くのデータが表示されるため、各時間間隔の RDD がますます大きくなることuser_ids
です。しばらくすると、マップが非常に大きくなり、維持に時間がかかり、結果のリアルタイム配信が実現できなくなります。
これは、問題を示すために思いついた単純な例にすぎないことに注意してください。実際の問題はより複雑になる可能性があり、リアルタイムで配信する必要があります。
この問題を解決する方法についてのアイデアはありますか (Spark だけでなく、他のソリューションもすべて適切です)。