- 차세대 람다 아키텍처
람다 아키텍처는 아파치 스톰 개발자인 Nathan Marz 씨가 제안한 개념으로, 실시간 레이어와 배치 레이어를 결합하여 빅데이터의 실시간 분석을 지원하는 아키텍처를 의미합니다. 예를 들면, 배치 분석을 통해 일자별로 통계를 생성하고, 당일 데이터는 별도의 실시간 통계를 유지한 다음, 이를 합쳐서 실시간 분석을 제공합니다.
하둡 기반으로 람다 아키텍처를 구현할 때에는 일반적으로 HDFS에 적재된 데이터를 MapReduce나 HIVE로 배치 분석하고, STORM이나 SPARK 같은 스트리밍 솔루션으로 실시간 집계를 수행한 뒤, 이를 HBASE나 RDBMS에서 통합하여 실시간에 가까운 분석을 유지합니다.

이와 같은 구성은 의도한대로 실시간 빅데이터 분석을 지원하기는 하지만, ETL 작업부터 시각화 단계에 이르기까지 독립적인 다수의 구성요소를 통합하여 개발해야 하기 때문에 구축 및 운영에 있어서 많은 어려움이 있습니다.
인터넷에 연결되는 수십만 대의 IoT 센서 데이터를 실시간으로 분석할 때에는 더욱 어려움이 따릅니다. 실무에서는 센서 데이터에 포함된 식별자를 기준으로 원본 데이터에 다양한 메타데이터를 추가하여 분석을 수행하는 사례를 흔히 볼 수 있습니다. 예를 들면, 셋탑박스의 식별자를 연령, 지역, 상품명 등으로 매핑하여 다양한 분석을 수행하게 됩니다.
가장 흔한 설계 오류는 아래와 같이 스트리밍 솔루션에서 로그가 수신될 때마다 RDBMS를 대상으로 매번 쿼리하는 구성입니다. 아래의 아키텍처에서는 DB에 대한 메타데이터 쿼리가 네트워크 스택의 레이턴시를 포함하여 1밀리초 이내에 응답한다고 하더라도 1000 TPS를 내기 어려운 구성이 됩니다.

일반적으로는 실시간 스트리밍 처리와 배치 분석이 별개의 솔루션으로 구성되는데, 이렇게 다수의 컴포넌트로 구성된 아키텍처에서 가장 큰 성능의 병목은 메모리에 있는 데이터를 바이너리로 직렬화하고 네트워크 I/O를 수행하는 연동 구간에 존재합니다.
로그프레소는 다단계 스트림 토폴로지를 쿼리만으로 구성할 수 있을 뿐 아니라, 수 억 건을 초 단위로 분석하는 컬럼-지향 DB 기술을 통해 고속 배치 분석을 지원함으로써 스트림과 배치 분석을 효율적으로 통합하고 기존 시스템의 성능 문제와 복잡도를 한 번에 해결합니다.

특히, 로그프레소가 지원하는 스트림 조인 기술은 임의의 내부 및 RDBMS 등 외부 데이터를 인메모리 캐시하고 흘러 들어오는 데이터에 대해 실시간으로 조인할 수 있도록 지원함으로써, 단일 머신에서도 수십만 EPS 이상의 속도로 메타데이터 태깅을 수행할 수 있습니다.
통신사에서는 매일 수십 테라바이트 이상의 데이터가 발생하는데, 로그프레소는 스트림 쿼리를 사용하여 데이터 정규화, 1천만 가입자 데이터 실시간 조인, 목적 데이터 마트별 통계 데이터 생성을 수행하고, 리포트 쿼리는 써머리 데이터를 취합하여 고속으로 최종 통계 보고서를 생성합니다.
차세대 람다 아키텍처
요약하면 기존의 람다 아키텍처 구현은 아래와 같은 이슈가 있습니다.
- 배치 및 스피드 레이어 이중 데이터 공급으로 대역폭 2배 사용
- 디스크 기록 후 배치 쿼리 시 다시 읽기 때문에 낮은 성능
- 배치와 스피드 레이어 통합 개발 공수 및 정합성 이슈
- 여러 곳에 분산된 데이터의 액세스 컨트롤 어려움
- 다수의 솔루션 통합으로 장애 대응 어려움

차세대 람다 아키텍처는 고성능 스트림과 배치 분석을 지원하는 솔루션을 이용하여 기존 람다 아키텍처 구현의 문제를 해결합니다.
- 스트림, 배치, 리포팅 및 시각화의 모든 단계를 쿼리로 구성 가능
- 단일 솔루션에서 스트림 및 배치 분석을 통합하여 네트워크 대역폭 사용 최소화
- 원본 데이터 수집 시 인메모리 써머리 수행 후 디스크 기록하여 고성능
- 권한제어 및 데이터 관리 포인트 일원화