一般的なストリーミングシステム
ストリーミングの基礎概念
Mike Metzger
Data engineer
ストリーミングツール
- ニーズに応じた多様なツール
- 設計者が最適なツールを選択可能
- 代表的なシステム:
- Celery
- Kafka
- Spark Streaming
Celery
- 分散タスクキュー/FIFO
- 主にジョブ/タスクキューとして使用
- 非同期タスクで多用
- パスワード再設定メール送信
- デジタル注文の処理
- 画像リサイズ
- 大量メッセージのリアルタイム処理
- 管理・スケーリング機能(垂直・水平)を提供
Apache Kafka
- 分散イベントストリーミングシステム
- プロデューサとコンシューマ間でイベント送受信
- プロデューサはトピックにイベントを作成
- トピックは所定形式のメッセージ
- コンシューマは新規イベントを受信
- コンシューマごとに必要に応じて処理(ログ、変換、中継など)
- 指定に従いイベントを保存
- 非常に強力だが、セットアップは難しい場合あり

Kafka の用途
- 複数システム間でのデータ受け渡しに最適
- 単一の信頼できる情報源
- 変更データのキャプチャ
- データのバックアップ
- データシステムの移行
Spark Streaming
- Apache Spark の一部
- ストリーミングデータを処理する設計
- Spark の機能上で、Scala・Python・SQL 等で処理
- 大規模データや機械学習に有用
- バッチからストリームへ容易に移行可能
- 保管やログ用ではなく、主にデータを処理・変換
Preparing Video For Download...