기술자료

DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.

빅데이터의 실시간 활용을 위한 Oracle의 CEP 솔루션

기술자료
빅데이터 분류
빅데이터기술
작성자
dataonair
작성일
2013-01-30 00:00
조회
7611



빅데이터의 실시간 활용을 위한 Oracle의 CEP 솔루션



저자 - 임종대 컨설턴트, 한국오라클 OFM 팀



빅데이터의 시대


언제 어디서나 인터넷에 연결할 수 있는 다양한 Smart Device의 보급과 SNS의 발달을 통해 빅데이터의 시대가 열리고 있다. 완전하게 인터넷에 연결된 시대에 살고 있는 지금, 인터넷 상의 1분 동안 어떤 일이 일어나고 있을까 이 짧은 시간 동안에, Google에는 200백만 이상의 검색이 일어나고 Twitter에는 10만개의 새로운 트윗이 올라 오며 Facebook에는 600만 이상의 페이지 뷰가 발생한다. 또한, 우리는 YouTube를 통해 130만개의 비디오를 보고, Flickr에는 6,600개 이상의 새로운 사진을 올리고 있다. 여기에 더해 우리는 그 사이 160만개의 이메일을 전송한다.

이러한 정보의 교환은 당연히 엄청난 양의 데이터를 주고 받는다는 것을 의미하며, 1분 동안 인터넷을 통해 주고 받는 모든 데이터는 340TB에 이른다. Source: Intel, go-globe.com)
20130130_oracle_01.png

게다가, 인터넷 뿐만 아니라 다양한 센싱 장비들로 부터 발생하는 데이터 또한 방대하다. 일례로, 2005년 전세계에 배포된 RFID 태그는 13억개로 추산되었지만, 현 재는 300억개 이상의 태그가 배포되어 있다. 또한, 네이게이션과 대부분의 스마트 장비에는 GPS가 탑재되어 실시간으로 방대한 양의 지리정보를 발생시키고 있고, 2014년이 되면 20억개의 스마트 계측기(Smart Meter)가 보급되어 실시간으로 전력 소비량 정보를 전송할 것이다.



빅데이터는 가치가 있을까


여기서 우리는 “끊임없이 쏟아지는 이러한 방대한 양의 데이터 속에는 과연 의미있는 데이터가 포함되어 있을 까” 라는 의문이 들 수 있다.

이 질문에 대한 재미있는 답을 Google Flu Trends의 예에서 찾아볼 수 있다. Google에서는 사용자의 검색 키워드를 분석해 독감의 유행을 예측하는 서비스를 제공하는데, 놀랍게도 미국의 질병관리본부(CDC)에서 표본감시(Sentinel Physician)를 통해 내 놓는 정보와 그 데이터가 정확히 일치하는 것을 볼 수 있다. 심지어, Google Flu Trends는 CDC의 공식적인 리포트보다 2~3주 더 빠르게 독감의 유행을 예측할 수 있다.
20130130_oracle_02.png



빅데이터 실시간 처리 솔루션의 필요성


이러한 빅데이터 시대에 있어서, 기업의 민첩성 즉, 실시간성의 확보(Real-Time Enterprise)는 또 다른 중요한 화두이다. 변화와 불확실성의 시대에 기업은 비지니스의 상호 행위의 즉시성 또는 실시간성을 확보함으로써 경쟁력을 높이고 비용 효율적인 비지니스를 수행할 수 있다.

빅데이터는 다양하고(Variety), 대용량이며(Volume) 실시간적으로 발생한다는(Velocity) 특징을 갖는다. 이러한 이유 때문에, 빅데이터의 특징은 일반적으로 3V(Variety, Volume, Velocity)로 표현된다.

이러한 특징을 갖는 빅데이터를 실시간으로 분석하고 활용하기 위해서 다음과 같은 기능적 요구사항을 충족하는 새로운 기술이 필요하게 되었는데, 이것이 바로 Complex Event Processing 즉, CEP 기술이다.
20130130_oracle_03.png

그렇다면 일반적으로 말하는 빅데이터 분석과 실시간 성이 강조된 CEP 분석의 차이점은 무엇일까 가장 중요한 차이점은 빅데이터 분석이 저장된 비정형 데이터를 충분한 시간을 두고 처리하는데 반해, CEP 분석은 저장되기 전에 데이터를 실시간적으로 분석하는데 있다. 또한, 분석되는 데이터의 크기를 보면 일반적으로 빅데이터 분석의 경우가 CEP 분석에 비해 훨씬 크다.
20130130_oracle_04.png



CEP의 활용도가 높은 분야


Complex Event Processing이 큰 효과를 줄 수 있는 업무에는 어떤 것들이 있을까 다음은 복잡하고 방대한 실시간 데이터의 실시간 처리가 필요한 다양한 분야의 활용 예를 나타낸 표이다.
20130130_oracle_05.png



Oracle의 CEP 솔루션


Oracle의 CEP 솔루션은 Oracle이 전통적으로 뛰어난 영역인 데이터 분석기술 및 EDA(Event Driven Architecture) 기술과 인수합병한 BEA의 WebLogic Event Server 기술이 성공적으로 융합된 결과이다. 역사적으로는, 2006년 발표된 Oracle의 Event-Driven Architecture Suite 제품과 2007년 발표된 BEA의 WebLogic Event Server 제품이 2009년 BEA의 인수 합병 후, Oracle CEP(Complex Event Processing) 제품으로 완전하게 통합되어 발표되었다.

Complex Event Processing에서 요구되는 경량의 빠른 처리 및 확장성을 지원하기 위해 Oracle CEP는 OSGi(Open Service Gateway initiative) 및 Summer DM(Dynamic Modules) 기술 기반으로 제작되었다.

따라서, Oracle CEP는 WAS나 DBMS 없이 동작하는 Stand-alone, Light-weight 서버이며, 이에 더하여 기업 용 솔루션이 갖추어야할 고가용성(HA, Fail-over) 및 확장성(Scale Up/Out) 기능을 기본적으로 제공하고 있다.
20130130_oracle_06.png

또한, 현존하는 최고 성능의 JVM인 JRockit Real Time 기술과 In-memory Data Grid 기술인 Coherence 기술이 CEP와 결합되어 안정적이면서도 뛰어는 성능을 제공한다. JRockit Real Time의 Deterministic Garbage Collection을 사용하면, 최소의 응답시간을 보장할 수 있다.

Oracle CEP 상에서 동작하는 모듈은 기본적으로 OSGi 번들(Bundle)이기 때문에 POJO(Plain Old Java Object) 기반의 손쉬운 프로그래밍으로 제작할 수 있으며, OSGi와 Summer DM 기술에서 제공하는 모듈의 동적 배포 특성을 통해 모듈들은 중단 없이 동적으로 배포, 제거 및 업데이트할 수 있다.



EPN (Event Processing Network)


Oracle CEP상에서 흘러가는 데이터의 흐름을 제어하고 관리하기 위해 Event Processing Network 즉, EPN이라는 Application Model Architecture가 제공된다. EPN의 각 스테이지(Stage)를 구성하는 컴포넌트는 다음과 같으며, 컴포넌트를 연 룰을 세팅하거나 임시저장 등의 기능을 수행할 수 있다.
20130130_oracle_07.png
20130130_oracle_08.png



CQL (Continuous Query Language)


Oracle CEP는 EPN상의 Processor에 룰을 정의하여 흘러가는 이벤트를 처리하기 위한 프로그래밍 언어로써 SQL 기반의 CQL (Continuous Query Language)을 사용한다.

CQL은 미국 스탠포드 대학의 연구를 기초하여 제작되 었으며, SQL ‘99를 기반으로 연속적인 스트림 데이터의 처리를 위한 Continuous Query가 확장된 언어이다. SQL를 기반으로 하고 있기 때문에, 기존 SQL이 익숙한 엔지니어의 기술셋을 충분히 활용할 수 있다는 장점이 있다.

CQL을 이용하면, 스트림 데이터에 대하여 filtering, aggregation, correlation, pattern matching 등의 작업을 손쉽게 수행할 수 있다.
20130130_oracle_09.png



편리한 개발환경 및 관리콘솔


EPN 설계 및 OSGi 번들 제작이 통합된 eclipse 기반의 개발 환경이 제공되어 편리하게 Oracle CEP 애플리케이션을 제작할 수 있다. 추가적으로, 이 개발환경을 통해 Oracle CEP 제어하고 모듈을 직접 배포, 제거, 업데이트할 수 있는 기능도 수행할 수 있다.

OSGi 및 Spring DM 기반으로 애플리케이션을 개발할 때 POJO 기반으로 필요한 기능을 추가하기 때문에 기존 Java 엔지니어의 기술셋을 손쉽게 활용할 수 있는 장점이 있다.
20130130_oracle_10.png

또한, Oracle CEP의 전체적인 관리 기능을 제공하는 Visualizer라는 관리콘솔이 제공되는데,이를 이용하면 클러스터와 같은 운영 환경을 구성하고 관리할 수 있으며, 기동 중인 애플리케이션의 성능 등을 모니터링 할 수 있다. 추가적으로 Visualizer의 “Dynamic CQL Injection” 기능을 사용하면 CQL 기반의 쿼리를 수정하여 중단 없이 즉시 반영할 수 있다.
20130130_oracle_11.png



Data Cartridge 기술을 통한 CQL의 확장


Oracle CEP에서 제공하는 Data Cartridge 기술을 활용 하면, CQL을 확장해 추가적인 타입이나 함수 호출 등의 기능을 손쉽게 사용할 수 있다. 기본적으로 다음과 같은 Domain Specific Data Cartridge가 제공된다.



Oracle Java Data Cartridge
: CQL 내에서 기 정의된 Java 클래스의 메서드를 손쉽게 호출(callout) 할 수 있다.

Oracle Spatial Data Cartridge
: CQL 내에서 Oracle Spatial서 제공하는 지리정보를 손쉽게 사용할 수 있다.

Oracle JDBC Data Cartridge
: JDBC Cartridge에 정의된 함수를 사용하여 CQL에서 외부의 DBMS로 SQL을 호출할 수 있다.



20130130_oracle_12.png



결론


최신의 Oracle CEP 솔루션을 활용하면, 다양한 소스에서 발생하는 방대한 양의 복잡한 데이터를 실시간으로 분석하고 활용할 수 있다.
복잡한 업무 환경에서 발생하는 데이터 중 의미 있는 데이터를 추출하거나 패턴을 인지하고 그에 따른 즉각적 인 대응을 할 수 있어 기업의 실시간성을 극해화 할 수 있다.



OCEP의 특징
Lightweight
In-memory 처리 기반의 가볍고 빠른 서버

High Throughput/Low Latency
microseconds 단위의 처리 보증 (Exalogic 1 node 상에서 1 million events/s의 성능)

Easy-to-Use
POJO 기반의 심플한 개발과 EPN 설계 등이 포함된 통합 개발환경 제공

Continuous Query Language (CQL)
무한한 스트림 데이터 처리 및 패턴 인식을 위한 SQL 기반의 언어 사용

HA/Fail-over/Scalibility
기업용 솔루션에 필수적인 고가용성 및 확장성 제공

Cache Integration
최상의 In-memory Data Grid인 Coherence와의 통합 및 Local cache 제공