時間ベースのリテンションを持つイベント ブローカーからのイベント ストリーム (代わりに「メッセージ」または単に「データ」と呼ぶこともできます) があります。イベント ブローカーは、Kafka、Amazon Kinesis、またはMicrosoft Event Hubsである可能性がありますが、それが Kafka であるとしましょう。
私の目標は、このイベント ストリームを受け取り、それをコールド ストレージに入れることです。つまり、Hadoop/Spark を介した将来の分析のためにデータを保存します。これは、この「おしゃべりな」イベント ストリームを HDFS の「分厚い」ファイルに変換したいということです。クラウド環境では、HDFS の代わりに S3 または Azure Storage を使用する可能性があります。
また、ソリューションの費用対効果が高いことも望んでいます。たとえば、ディスク容量のコストを削減するために、Avro/ORC などのシリアル化形式を使用しています。私はまた、特定のイベントがコールド ストレージに保持されることを少なくとも 1 回保証するようなものです (1 回限りのボーナス ポイント)。
私の主な質問は次のとおりです。
- 人々はこの問題をどのように解決していますか?
- このシナリオを既に処理しているコンポーネントはありますか?
- 自分でソリューションを開発する必要がありますか?
- 少なくとも、推奨されるパターンはありますか?