지구정복
[Esper] Esper 개념 및 구성요소 본문
1. 개념
Storm에서 특이한 데이터만 Redis에 저장하는데 여기서 특이한 데이터를 찾아내는 로직이나 룰을 정의하는 것이 Esper의 역할이다. Esper의 쿼리를 통해서 이러한 로직을 정의할 수 있다.
Storm이 대규모의 실시간 데이터를 단순 가공 및 추출 처리하는 데는 문제없지만 실시간으로 발생하는 데이터로부터 복잡하거나 특이한 패턴을 가진 데이터를 찾고, 그 패턴에 따른 각각의 다른 이벤트를 처리하는 것은 어려운 일이다.
실시간으로 발생하는 데이터 간의 관계를 복합적으로 판단 및 처리하는 것을 CEP(Complex Event Processing)라고 하는데 Esper가 바로 CEP 기능을 제공한다. Esper를 이용하면 CEP처리를 위한 다양한 조건과 복합 이벤트를 하나의 룰로 쉽게 정의할 수 있어 CEP 처리 및 관리가 수월해진다.
Esper는 특정 애플리케이션 서버 안에 내장되는 라이브러리라고 생각하면 쉽다. Storm의 Bolt안에 내장되고 Esper 엔진 안에서 EPL 쿼리를 통해 특정 패턴을 가지는 데이터를 찾아낸다.
2. 구성요소
-Event : 실시간 스트림으로 발생하는 데이터들의 특정 흐름 또는 패턴을 정의
-EPL : 유사 SQL을 기반으로 하는 이벤트 데이터 처리 스크립트 언어. EPL이 특정 데이터의 패턴을 찾아내는 로직을 만들기 위한 언어
-Input Adapter : 소스로부터 전송되는 데이터를 처리하기 위한 어댑터 제공(CSV, Socket, JDBC, Http 등)
-Output Adapter : 타깃으로 전송하는 데이터를 처리하기 위한 어댑터 제공(HDFS, CSV, Socket, Email, Http 등)
-Window : 실시간 스트림 데이터로부터 특정 시간 또는 개수를 설정한 이벤트들을 메모리 상에 등록한 후 EPL을 통해 결과를 추출
'데이터 엔지니어링 정복 > Hadoop Ecosystem' 카테고리의 다른 글
[Storm] Storm 설치하기 (0) | 2021.05.08 |
---|---|
[Redis] Redis 설치 및 기본 명령어(set, get) (0) | 2021.05.08 |
[Storm] Storm 개념 및 구성요소 (0) | 2021.05.08 |
[Redis] Redis 개념 및 구성요소 (0) | 2021.05.07 |
[Flume] Source, Channel, Sink, Interceptor의 종류 및 예제 (0) | 2021.05.06 |