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

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

tandfy
June 19, 2020

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

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 ੜσʔλ #* ूܭ σʔλ