マイクロアドのアプリケーションエンジニアの x です。数ヶ月前からストリームアプリの開発を担当しています。ある案件を検証する為、Structured Streaming を使ってみました。 マイクロアドでは、Spark Streaming でデータを5~10秒毎に処理しています。Spark Streaming については、順序保証型分散ストリーム処理 と、 Spark Streaming と Kryo シリアライザーの話 でも解説していますので、ご覧ください。 Spark Streaming は強力なストリーミングですが、遅延したデータを簡単に処理する方法がなく、マイクロアドでも問題となっています。さしあたり解決方法として、 処理する時に event time(実際にイベントが発生した時間)ではなく、ingestion time(データがソースに入った時間)を見る 遅延したデータを捨てる