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

5分ちょいでわかった気になるラムダアーキテクチャ

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for yubessy yubessy
August 28, 2017

 5分ちょいでわかった気になるラムダアーキテクチャ

社内勉強会用資料です

Avatar for yubessy

yubessy

August 28, 2017
Tweet

More Decks by yubessy

Other Decks in Programming

Transcript

  1. ラムダアー キテクチャとは? = ビッグデー タ処理システムの設計指針 例えるなら: Web アプリの設計指針 -> MVC

    ビッグデー タ処理システムの設計指針 -> ラムダアー キテクチャ 提唱者: Nathan Marz Apache Storm の開発者
  2. ビッグデー タ処理の課題 スケー ラビリティ デー タ増に応じてリソー スを追加 RDB では処理能力が追いつかない 堅牢性

    デー タ量が多いと耐障害性を保ちにくい 汎用性 どんな処理が実行されるか事前に予想しにくい
  3. 登場背景 従来の状況 個別の課題を対処療法的に解決 -> トレー ドオフによるいたちごっこ -> プロジェクト毎に同じ仕事の繰り返し ラムダアー キテクチャ

    課題を整理・ 一般化し、 それらを包括的に解決 -> トレー ドオフを統制下に置く -> 一般的な枠組みに昇華
  4. 原理 全ての処理はデー タ集合に対するクエリである KPI 分析もレコメンド生成もデー タ集合から 価値を生み出す計算(= クエリ) とみなす クエリはデー

    タに対する関数である 関数は必要に応じて分割・ 合成できる -> 計算フロー を垂直・ 水平に分割できる
  5. 全貌 バッチ層 過去からの全デー タをマスタデー タ化して蓄積 マスタデー タからバッチビュー を生成 スピー ド層

    生デー タを低レイテンシのストリー ムに流す ストリー ムからリアルタイムビュー を生成 サー ビス層 2つのビュー からクエリの結果を計算
  6. マスタデー タ 永続性を必要とする唯一のデー タストア ビュー が失われてもマスタデー タから再生成可 純粋な事実デー タのみを追記方式で記録 他の値から導出できる値は保持しない

    削除・ 更新を行わない(≠RDB のテー ブル) 分散ファイルシステム(HDFS, S3 等) を利用 スキー マを強制できるフォー マットを利用
  7. ラムダアー キテクチャの利点 クエリの計算フロー を2層に分けることで 様々 なトレー ドオフを回避 正確性 <-> レイテンシ

    クエリの自由度 <-> 計算量 永続性をマスタデー タのみに求めることで 堅牢性とスケー ラビリティを両立 冗長化が容易 DB サー バ管理が不要
  8. Livesense Analytics と Lambda Architecture アクセスログテー ブルの生成バッチで導入 マスタデー タ (S3)

    ( ユー ザID, タイムスタンプ, URL) のみを保持 バッチビュー (Spark on EMR) visit_id や page_type などはこちらで生成 リアルタイムビュー: 作ってない 詳しくは↓ で デー タ分析を支える「 便利カラム」 の問題点と その解決策 - LIVESENSE made*
  9. 参考 Lambda Architecture » λ lambda-architecture.net Lambda Architecture with Apache

    Spark - DZone Big Data O'Reilly Japan - スケー ラブルリアルタイムデー タ 分析入門