Ziks

Lambda Architecture 본문

Development/Big Data

Lambda Architecture

YunZiks 2020. 1. 10. 18:30
  • 여러 오픈소스들을 조합하여 실시간 처리를 할 수 있는 구조

  • 효율적인 방식으로 대량의 데이터를 처리할 수 있는 데이터 처리 기술

  • 폴리글랏 프로세싱이라고도 함

  • Speed Layer + Batch Layer + Serving Layer의 3계층으로 구성된 실시간 아키텍쳐

Lambda Architecture

장점

  • 지연 시간 감소
  • 높은 처리량, 낮은 대기 시간 (= 실시간)
  1. Batch Layer

    • 데이터를 단위(시간, 크기 등) 만큼 잘라 처리한다.
    • immutable data set의 성질을 갖는다.
    • 모든 새로운 Data Stream은 Data Lake 위에서 처리됨
    • 메모리 데이터베이스(ex. Redis)나 NoSQL기반 데이터베이스를 사용하여 Data Lake에 저장하는 경우
      • MapReduce / Machine Learning 을 사용, 데이터 처리하여 Batch View를 예측한다.
    • Batch Layer의 master dataset에는 처리 전의 Raw Data들을 저장한다.
      • Batch View의 데이터가 잘못되었을 때 복구를 위함
      • 새로운 뷰를 제공 할 때 통계 분석이 가능함
  2. Speed Layer

    • Batch Layer 작업 후 들어오는 실시간 데이터 처리
    • Batch Layer에서 수행되는 도중 결실된 데이터를 위한 실시간 분석
    • Queue, Buffer등의 빠르고 효율적인 구조 사용
    • 효율적인 스트림 처리를 위한 증분 처리방식을 사용함
    • Batch Process가 완료된 시점에 처리된 Real Time View는 삭제됨
  3. Serving Layer

    • Batch View + Real Time View
    • 두 과정의 뷰를 merge하여 사용자의 쿼리에 대한 응답
Comments