+ All Categories
Home > Documents > Trend - Oracle · 7> Oracle CEP Visualizer Java Data Cartridge를 활용한 CQL확 장 예 결론...

Trend - Oracle · 7> Oracle CEP Visualizer Java Data Cartridge를 활용한 CQL확 장 예 결론...

Date post: 09-Feb-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
3
ORACLE KOREA MAGAZINE Trend 빅데이터의 실시간 활용을 위한 Oracle CEP 솔루션 009 Summer 2012 ORACLE KOREA MAGAZINE Trend 빅 데이터 관리 008 Summer 2012 잡한 다면적인 결과를 생성하는 데 이용되는 Oracle R Enterprise 등을 포함한 다양한 툴 및 프로세스를 이용할 것입니다. Oracle Data Integrator, Hadoop MapReduce 프로세스 그리고 심지어 NoSQL 데이터 를 데이터 웨어하우스 내 쿼리로 직접 가져올 수 있는 데이터베이스 내 MapReduce 등에 이르기까지 Oracle NoSQL Database에서 데이터를 Oracle 데이터 웨어하 우스로 보내는 여러 방법이 있습니다. 다시 말해, SQL 함수를 활용함으로써 이 경우, MapReduce SQL 함수 — MapReduce에 액세스 가능한 외부 소스의 데이터를 Oracle Database에서 실행되는 쿼리로 직접 추출할 수 있습니다. Rich Schwerin은 소셜 미디어를 전문적으로 담당하 고 있는 Oracle Publishing의 수석 매니저다. 빅데이터의 시대 언제 어디서나 인터넷에 연결할 수 있는 다양한 Smart Device의 보급과 SNS의 발달을 통해 빅데이터의 시대 가 열리고 있다. 완전하게 인터넷에 연결된 시대에 살고 있는 지금, 인터 넷 상의 1분 동안 어떤 일이 일어나고 있을까? 이 짧은 시간 동안에, Google에는 200백만 이상의 검색 이 일어나고 Twitter에는 10만개의 새로운 트윗이 올라 오며 Facebook에는 600만 이상의 페이지 뷰가 발생한 다. 또한, 우리는 YouTube를 통해 130만개의 비디오를 보고, Flickr에는 6,600개 이상의 새로운 사진을 올리고 있다. 여기에 더해 우리는 그 사이 160만개의 이메일을 전송한다. 이러한 정보의 교환은 당연히 엄청난 양의 데이터를 주 고 받는다는 것을 의미하며, 1분 동안 인터넷을 통해 주 고 받는 모든 데이터는 340TB에 이른다. (Source: Intel, go-globe.com) 게다가, 인터넷 뿐만 아니라 다양한 센싱 장비들로 부터 발생하는 데이터 또한 방대하다. 일례로, 2005년 전세 계에 배포된 RFID 태그는 13억개로 추산되었지만, 현 재는 300억개 이상의 태그가 배포되어 있다. 또한, 네이 게이션과 대부분의 스마트 장비에는 GPS가 탑재되어 실시간으로 방대한 양의 지리정보를 발생시키고 있고, 2014년이 되면 20억개의 스마트 계측기(Smart Meter) 가 보급되어 실시간으로 전력 소비량 정보를 전송할 것 이다. 빅데이터는 가치가 있을까? 여기서 우리는 “끊임없이 쏟아지는 이러한 방대한 양의 데이터 속에는 과연 의미있는 데이터가 포함되어 있을 까?” 라는 의문이 들 수 있다. 이 질문에 대한 재미있는 답을 Google Flu Trends의 예 에서 찾아볼 수 있다. Google에서는 사용자의 검색 키 워드를 분석해 독감의 유행을 예측하는 서비스를 제공 TREND 02 <그림 1> What happens in an Internet Minute? <그림 2> Google Flue Trends 원문 : http://www.oracle.com/technetwork/issue-archive/2012/12-mar/ o22interview-1512298.html 빅데이터의 실시간 활용을 위한 OracleCEP 솔루션 저자 - 임종대 컨설턴트, 한국오라클 OFM ([email protected])
Transcript
Page 1: Trend - Oracle · 7> Oracle CEP Visualizer  Java Data Cartridge를 활용한 CQL확 장 예 결론 최신의 Oracle CEP 솔루션을 활용하면, 다양한 소스에

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터의

실시

간 활

용을

위한

Oracle 의

CEP 솔

루션

009Sum

mer 2012

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터 관

리008

Summ

er 2012

잡한 다면적인 결과를 생성하는 데 이용되는 Oracle

R Enterprise 등을 포함한 다양한 툴 및 프로세스를

이용할 것입니다. Oracle Data Integrator, Hadoop

MapReduce 프로세스 그리고 심지어 NoSQL 데이터

를 데이터 웨어하우스 내 쿼리로 직접 가져올 수 있는

데이터베이스 내 MapReduce 등에 이르기까지 Oracle

NoSQL Database에서 데이터를 Oracle 데이터 웨어하

우스로 보내는 여러 방법이 있습니다. 다시 말해, SQL

함수를 활용함으로써 – 이 경우, MapReduce SQL 함수

— MapReduce에 액세스 가능한 외부 소스의 데이터를

Oracle Database에서 실행되는 쿼리로 직접 추출할 수

있습니다.

※ Rich Schwerin은 소셜 미디어를 전문적으로 담당하

고 있는 Oracle Publishing의 수석 매니저다.

빅데이터의 시대

언제 어디서나 인터넷에 연결할 수 있는 다양한 Smart

Device의 보급과 SNS의 발달을 통해 빅데이터의 시대

가 열리고 있다.

완전하게 인터넷에 연결된 시대에 살고 있는 지금, 인터

넷 상의 1분 동안 어떤 일이 일어나고 있을까?

이 짧은 시간 동안에, Google에는 200백만 이상의 검색

이 일어나고 Twitter에는 10만개의 새로운 트윗이 올라

오며 Facebook에는 600만 이상의 페이지 뷰가 발생한

다. 또한, 우리는 YouTube를 통해 130만개의 비디오를

보고, Flickr에는 6,600개 이상의 새로운 사진을 올리고

있다. 여기에 더해 우리는 그 사이 160만개의 이메일을

전송한다.

이러한 정보의 교환은 당연히 엄청난 양의 데이터를 주

고 받는다는 것을 의미하며, 1분 동안 인터넷을 통해 주

고 받는 모든 데이터는 340TB에 이른다.

(Source: Intel, go-globe.com)

게다가, 인터넷 뿐만 아니라 다양한 센싱 장비들로 부터

발생하는 데이터 또한 방대하다. 일례로, 2005년 전세

계에 배포된 RFID 태그는 13억개로 추산되었지만, 현

재는 300억개 이상의 태그가 배포되어 있다. 또한, 네이

게이션과 대부분의 스마트 장비에는 GPS가 탑재되어

실시간으로 방대한 양의 지리정보를 발생시키고 있고,

2014년이 되면 20억개의 스마트 계측기(Smart Meter)가 보급되어 실시간으로 전력 소비량 정보를 전송할 것

이다.

빅데이터는 가치가 있을까?

여기서 우리는 “끊임없이 쏟아지는 이러한 방대한 양의

데이터 속에는 과연 의미있는 데이터가 포함되어 있을

까?” 라는 의문이 들 수 있다.

이 질문에 대한 재미있는 답을 Google Flu Trends의 예

에서 찾아볼 수 있다. Google에서는 사용자의 검색 키

워드를 분석해 독감의 유행을 예측하는 서비스를 제공

Trend 02

<그림 1> What happens in an Internet Minute? <그림 2> Google Flue Trends

원문 : http://www.oracle.com/technetwork/issue-archive/2012/12-mar/

o22interview-1512298.html

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

저자 - 임종대 컨설턴트, 한국오라클 OFM 팀 ([email protected])

Page 2: Trend - Oracle · 7> Oracle CEP Visualizer  Java Data Cartridge를 활용한 CQL확 장 예 결론 최신의 Oracle CEP 솔루션을 활용하면, 다양한 소스에

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터의

실시

간 활

용을

위한

Oracle 의

CEP 솔

루션

011Sum

mer 2012

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터의

실시

간 활

용을

위한

Oracle 의

CEP 솔

루션

010Sum

mer 2012

하는데, 놀랍게도 미국의 질병관리본부(CDC)에서 표

본감시(Sentinel Physician)를 통해 내 놓는 정보와 그

데이터가 정확히 일치하는 것을 볼 수 있다. 심지어,

Google Flu Trends는 CDC의 공식적인 리포트보다 2~3 주 더 빠르게 독감의 유행을 예측할 수 있다.

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

이러한 빅데이터 시대에 있어서, 기업의 민첩성 즉, 실

시간성의 확보(Real-Time Enterprise)는 또 다른 중요한

화두이다. 변화와 불확실성의 시대에 기업은 비지니스

의 상호 행위의 즉시성 또는 실시간성을 확보함으로써

경쟁력을 높이고 비용 효율적인 비지니스를 수행할 수

있다.

빅데이터는 다양하고(Variety), 대용량이며(Volume)

실시간적으로 발생한다는(Velocity) 특징을 갖는다.

이러한 이유 때문에, 빅데이터의 특징은 일반적으로

3V(Variety, Volume, Velocity)로 표현된다.

이러한 특징을 갖는 빅데이터를 실시간으로 분석하고

활용하기 위해서 다음과 같은 기능적 요구사항을 충족

하는 새로운 기술이 필요하게 되었는데, 이것이 바로

Complex Event Processing 즉, CEP 기술이다.

그렇다면 일반적으로 말하는 빅데이터 분석과 실시간

성이 강조된 CEP 분석의 차이점은 무엇일까?

가장 중요한 차이점은 빅데이터 분석이 저장된 비정형

데이터를 충분한 시간을 두고 처리하는데 반해, CEP

분석은 저장되기 전에 데이터를 실시간적으로 분석하

는데 있다. 또한, 분석되는 데이터의 크기를 보면 일반

적으로 빅데이터 분석의 경우가 CEP 분석에 비해 훨씬

크다.

CEP의 활용도가 높은 분야

Complex Event Processing이 큰 효과를 줄 수 있는 업무

에는 어떤 것들이 있을까? 다음은 복잡하고 방대한 실

시간 데이터의 실시간 처리가 필요한 다양한 분야의 활

용 예를 나타낸 표이다.

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) 기능을 기본적으로 제공하고 있다.

또한, 현존하는 최고 성능의 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)를 구성하는 컴포넌트는 다음과

같으며, 컴포넌트를 연결하고 구성함으로써 이벤트의

흐름을 제어하고 룰을 세팅하거나 임시저장 등의 기능

을 수행할 수 있다.

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 등의 작업을

손쉽게 수행할 수 있다.

요구 사항 특징

High Throughput(Low Latency)

- 방대한 양의 데이터 처리에 있어 실시간성 확보를 위한 1/1000초 이하의 성능 보증

- 빠른 처리를 위해 In-memory 기술 활용

Processor- 끊임없이 발생하는 데이터(Stream Data)의 처리 방법 제공 - Window Processing, Aggregation, Filtering, Correlation,

Transforming, Pattern Matching 등

Adapter 다양한 소스로부터 발생하는 비정형 데이터의 수신 방법 제공

Sink처리 결과에 따른 즉각적인 대응을 위한 다양한 시스템과의 연계 방식 제공

빅데이터 분석 CEP 분석

Data at Res Data In Motion

Mine large static Files Process Events at high Velocity

Analyze Later Analyze Now

On Disk In Memory

활용 분야 활용 예

센싱(Sensing) 데이터의

실시간 처리

- 제조공정(MES) 중에 발생하는 다양한 센싱 데이터의 실시간 모니터링 및 대응

- 건물 내 설치된 다양한 센서들에서 발생하는 정보를 바탕으로 한 효율적인 에너지 관리(BEMS)

실시간

로그분석

- 시스템 상에서 발생하는 다양하고 방대한 양의 로그를 실시간으로 분석하여 시스템을 모니터링하고 업무에 활용하는 시스템

실시간 물류 시스템(SCM)- RFID와 GPS의 정보에 기반한 실시간 물류 체계 감시 및 관리 시스템

보안 업무- 보안 관련 센싱 데이터 및 ID 사용 이력 등을 실시간으로 모니터링하는 보안 시스템

SNS 활용- 다양한 SNS 상의 방대한 정보를 실시간으로 모니터링하여 활용하는 마케팅 서비스

스마트폰 위치 정보 활용 - 스마트폰의 위치 정보를 활용한 마케팅 또는 프로모션 활동

알로리즘 매매- 급격하게 변하는 금융 정보를 실시간으로 처리하여 프로그램적으로 매매하는 솔루션

컴포넌트 특징

Adapter(Source/Sink)

- Adapter는 CEP 외부에서 발생하는 다양한 데이터를 수집하거나

CEP상의 데이터를 외부의 시스템과 연결하는 역할을 한다.- JMS, HTTP pub-sub 과 같은 표준 Adapter가 제공되고,

POJO 기반의 Custom Adapter를 제작하여 손쉽게 EPN 상에서 사용할 수 있다.

Channel- CEP 상의 이벤트 흐름을 연결하는 통로로써 이벤트를 보내는 컴포넌트와 수신하는 컴포넌트를 연결해준다.

Processor

- Channel을 통해 전달된 이벤트를 정해진 룰(Rule)에 따라 처리하는 역할을 담당한다.

- CQL(Continuous Query Language)이 룰을 정의하는데 사용된다.

<표 1> CEP 기술의 특징

<표 2> 빅데이터 분석 vs. CEP 분석

<표 3> CEP의 활용 분야

<표 3> EPN 컴포넌트의 특징

<그림 3> Oracle CEP의 기본 구조

<그림 4> EPN의 기본 구조 및 컴포넌트

CEP Modules(OSGI Bundles)

Oracle Complex Event Processing

Application 1 Application 2 ...Application Frameworks (OSGI Bundles)

Stream Management

Complex Event Processing Real Time Kernel

Core Event Infrastructure

Config

Java HotSpot VM JRockit Real Time with Deterministic GC

Security Logging

OSGI Foundation Services (Equinox)

JVM

Data Caching

Cluster Management

Event Repository

HTTP Pub/Sub Engine

Extended Event Infrastructure

InputCache CacheListenerInboundChannel

OutboundAdapter

Adapter(Source)

Channel Event Bean Adapter(Sink)

Processor Cache(Local/Coherence)

OutboundChannel

EventBean

FirstProcessorReferenceCacheOrDb OutCacheInboundAdapter

Page 3: Trend - Oracle · 7> Oracle CEP Visualizer  Java Data Cartridge를 활용한 CQL확 장 예 결론 최신의 Oracle CEP 솔루션을 활용하면, 다양한 소스에

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

EPN 설계 및 OSGi 번들 제작이 통합된 eclipse 기반의

개발 환경이 제공되어 편리하게 Oracle CEP 애플리케

이션을 제작할 수 있다. 추가적으로, 이 개발환경을 통

해 Oracle CEP 제어하고 모듈을 직접 배포, 제거, 업데

이트할 수 있는 기능도 수행할 수 있다.

OSGi 및 Spring DM 기반으로 애플리케이션을 개발할

때 POJO 기반으로 필요한 기능을 추가하기 때문에 기

존 Java 엔지니어의 기술셋을 손쉽게 활용할 수 있는 장

점이 있다.

또한, Oracle CEP의 전체적인 관리 기능을 제공하는

Visualizer라는 관리콘솔이 제공되는데,이를 이용하면

클러스터와 같은 운영 환경을 구성하고 관리할 수 있

으며, 기동 중인 애플리케이션의 성능 등을 모니터링

할 수 있다. 추가적으로 Visualizer의 “Dynamic CQL

Injection” 기능을 사용하면 CQL 기반의 쿼리를 수정하

여 중단 없이 즉시 반영할 수 있다.

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터의

실시

간 활

용을

위한

Oracle 의

CEP 솔

루션

012Sum

mer 2012

Data Cartridge 기술을 통한 CQL의 확장

Oracle CEP에서 제공하는 Data Cartridge 기술을 활용

하면, CQL을 확장해 추가적인 타입이나 함수 호출 등

의 기능을 손쉽게 사용할 수 있다. 기본적으로 다음과

같은 Domain Specific Data Cartridge가 제공된다.

Oracle Java Data Cartridge : CQL 내에서 기 정의된 Java 클래스의 메서드를 손쉽게 호출(call-

out) 할 수 있다.

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

수 있다.

Oracle JDBC Data Cartridge: JDBC Cartridge에 정의된 함수를 사용하여 CQL에서 외부의

DBMS로 SQL을 호출할 수 있다.

ORA

CLE KOREA

MA

GA

ZINE

Trend빅

데이

터의

실시

간 활

용을

위한

Oracle 의

CEP 솔

루션

013Sum

mer 2012

<그림 5> 패턴 인식이 포함된 CQL 예제

<그림 6> Eclipse 기반의 통합 개발환경

<그림 7> Oracle CEP Visualizer

<그림 8> Java Data Cartridge를 활용한 CQL 확장 예

결론

최신의 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 제공


Recommended