지구정복

[Esper] Esper 개념 및 구성요소 본문

데이터 엔지니어링 정복/Hadoop Ecosystem

[Esper] Esper 개념 및 구성요소

nooh._.jl 2021. 5. 8. 16:13
728x90
반응형

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을 통해 결과를 추출

 

 

 

 

 

 

728x90
반응형
Comments