一般的なストリーミングシステム

ストリーミングの基礎概念

Mike Metzger

Data engineer

ストリーミングツール

  • ニーズに応じた多様なツール
  • 設計者が最適なツールを選択可能
  • 代表的なシステム:
    • Celery
    • Kafka
    • Spark Streaming

Celery

Apache Kafka

Spark Streaming

ストリーミングの基礎概念

Celery

  • 分散タスクキュー/FIFO
  • 主にジョブ/タスクキューとして使用
  • 非同期タスクで多用
    • パスワード再設定メール送信
    • デジタル注文の処理
    • 画像リサイズ
  • 大量メッセージのリアルタイム処理
  • 管理・スケーリング機能(垂直・水平)を提供

Celery プロジェクト

ストリーミングの基礎概念

Apache Kafka

  • 分散イベントストリーミングシステム
  • プロデューサコンシューマ間でイベント送受信
    • プロデューサトピックにイベントを作成
    • トピックは所定形式のメッセージ
    • コンシューマは新規イベントを受信
  • コンシューマごとに必要に応じて処理(ログ、変換、中継など)
  • 指定に従いイベントを保存
  • 非常に強力だが、セットアップ難しい場合あり

Apache Kafka

ストリーミングの基礎概念

Kafka の用途

  • 複数システム間でのデータ受け渡しに最適
    • 単一の信頼できる情報源
    • 変更データのキャプチャ
    • データのバックアップ
    • データシステムの移行
ストリーミングの基礎概念

Spark Streaming

  • Apache Spark の一部
  • ストリーミングデータを処理する設計
  • Spark の機能上で、Scala・Python・SQL 等で処理
  • 大規模データ機械学習に有用
  • バッチからストリームへ容易に移行可能
  • 保管やログ用ではなく、主にデータを処理・変換

Apache Spark

ストリーミングの基礎概念

練習しましょう!

ストリーミングの基礎概念

Preparing Video For Download...