Upgrade to Pro — share decks privately, control downloads, hide ads and more …

アプリから集まるイベントデータのリアルタイム処理入門

Avatar for tandfy tandfy
June 19, 2020

 アプリから集まるイベントデータのリアルタイム処理入門

Avatar for tandfy

tandfy

June 19, 2020
Tweet

More Decks by tandfy

Other Decks in Programming

Transcript

  1. 14 レコメンドの構成例 ΞϓϦέʔγϣϯ "1* αʔόʔ Ϩίϝϯυ Πϕϯτ Πϕϯτ Ϩίϝϯυ ,JOFTJT

    %BUB 4USFBNT -BNCEB ,JOFTJT %BUB 'JSFIPTF 4 ੜσʔλ 1FSTPOBMJ[F Πϕϯτ Πϕϯτ Πϕϯτ $MPVE8BUDI &WFOU -BNCEB ఆظ࣮ߦ ιϦϡʔ γϣϯ࡞੒
  2. 29 代表的なソース • Apache Kafka • Amazon Kinesis Data Streams

    • Amazon Kinesis Data Firehose • Google Cloud PubSub
  3. 30 代表的なシンク • Apache Kafka • Elasticsearch • Amazon Kinesis

    Data Streams • Amazon Kinesis Data Firehose • Amazon S3 • Google Cloud PubSub
  4. 31 代表的なオペレータ • Map • 各レコード毎に処理する • Filter • 各レコード毎に内容に応じた絞り込みをする

    • Window • レコードの時間に応じて、ストリーム内のレ コードをグループ化する • 集計を⾏う他のオペレータと併⽤する
  5. 32 オペレータの種類 • ステートレス • レコード毎に処理する • 例: Map, Filter

    • ステートフル • レコードの内容をもとに複数のレコードをグ ループ化して、処理する • 例: Window
  6. 35 ストリーム処理における3種類の時間 • イベント時間(Event Time) • イベントが実際に発⽣した時間 • 注⼊時間(Ingestion Time)

    • ソースに読み込まれた(注⼊された)時間 • 処理時間(Processing Time) • オペレータで処理された時間
  7. 37 気になった⽤語 • 透かし、ウォーターマーク(Watermark) • ウィンドウ処理時の最⼤遅延時間 • 遅延: 注⼊時間 -

    イベント時間 • 注⼊時間の遅れをどれだけ考慮するか • チェックポイント • どこまで処理したかの記録
  8. 38 レコードの処理回数の保証 • Exactly once • 各レコードは必ず⼀回だけ処理される • At least

    once • 各レコードは少なくとも⼀回は処理される • At most once • 各レコードは最⼤⼀回は処理される
  9. 39 レコードの処理回数の保証 • Exactly once • 各レコードは必ず⼀回だけ処理される • At least

    once • 各レコードは少なくとも⼀回は処理される • At most once • 各レコードは最⼤⼀回は処理される プラットフォームや処理によって違うため 要件に応じて確認が必要
  10. 43 Kinesis Data Firehose ετϦʔϜ ίϯγϡʔϚʔ ετϦʔϜ ΦϖϨʔλʔ ετϦʔϜ ίϯγϡʔϚʔ

    ετϦʔϜ ΦϖϨʔλʔ ϓϩσϡʔαʔ γϯΫ 43FETIJGU &MBTUJDTFBSDI4FSWJDF 4QMVOL ,JOFTJT %BUB'JSFIPTF ϓϩσϡʔαʔ γϯΫ 43FETIJGU &MBTUJDTFBSDI4FSWJDF 4QMVOL ,JOFTJT %BUB'JSFIPTF -BNCEB
  11. 47 レコメンド(再掲) ΞϓϦέʔγϣϯ "1* αʔόʔ Ϩίϝϯυ Πϕϯτ Πϕϯτ Ϩίϝϯυ ,JOFTJT

    %BUB 4USFBNT -BNCEB ,JOFTJT %BUB 'JSFIPTF 4 ੜσʔλ 1FSTPOBMJ[F Πϕϯτ Πϕϯτ Πϕϯτ $MPVE8BUDI &WFOU -BNCEB ఆظ࣮ߦ ιϦϡʔ γϣϯ࡞੒
  12. 50 分析 データ処理版 ΞϓϦέʔγϣϯ Πϕϯτ Πϕϯτ ,JOFTJT %BUB 'JSFIPTF Ճ޻ूܭ

    σʔλ ,JOFTJT %BUB "OBMZUJDT ,JOFTJT %BUB 'JSFIPTF Ճ޻ूܭ σʔλ 3FETIJGU 4 ੜσʔλ #* ूܭ σʔλ