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

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

yubessy
August 28, 2017

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

社内勉強会用資料です

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 - スケー ラブルリアルタイムデー タ 分析入門