티스토리 뷰

반응형

현재 빅데이터 관련 기술로 Hadoop이 주로 활용되고 있습니다. 

그러나 최근 실시간 처리에 대한 요구가 늘어나면서 점차 In-Memory 기술에 대한 관심도 증가하고 있습니다. 


과거 실시간 처리를 위한 OLTP로서 데이터베이스를 주로 사용했지만, 

빅데이터 환경에서는 빠르게 생성되는 데이터 스트림을 처리하기 위해서 새로운 접근법이 필요한 것이죠. 


빅데이터 분석 기술에 대한 정리 에서도 Hadoop이외의 다른 기술들을 살펴보면서, 

구글에서는 Dremel을 통해 짧은 시간내에 수많은 데이터를 처리하기도 한다고 이야기했었습니다. 


처리하는 영역은 조금씩 다르지만 실시간이라는 이슈를 위해 주로 사용되는 기술들에 대해서 정리해 보도록 하겠습니다. 


Redis 

Redis는 "Remote dictionary System"의 약자로 BSD 기반의 오픈소스이며, VMWare가 인수해서 업그레이드를 하고 있습니다. 

In-Memory 기술로서 Key/Value Store로 구성되어 있어 NoSQL Database로 분류하기도 합니다. 

하지만 Message Queue, Shared Memory 용도로 사용될 수 있어 인스타그램, Stack Overflow, Digg와 같은 기업들이 

실시간 데이터 스트리밍 처리를 위해 활용하기도 합니다. 


다음은 node.js와 Redis를 활용한 아키텍처를 나타내고 있습니다. (출처: http://simonhampshire.wordpress.com/)



In-Memory 기술이라는 점에서 memcached와 유사하기는 하지만 

데이터를 디스크에 저장할 수 있는 Snapshotting과 AOF 방식 등으로 Persistance를 유지할 수 있습니다. 


다음에 설명할 Kafka와 유사하게 Message Queue뿐만 아니라 Pub/Sub 메시징 시스템도 지원하고 있네요. 


Apache Kafka

Kafka는 링크드인(LinkedIn)의 로그와 트래킹 시스템을 개선하기 위해 만들어진 것으로 Apache 프로젝트로 진행중입니다. 

분산 Pub/Sub 메시징 시스템으로 Hadoop과 연계해서 개발할 때 유용하게 활용된다고 합니다. 



최근 DEVIEW 2013의 발표를 보니 Netflix에서도 Kafka를 활용해서 데이터 로그를 처리한다고 하네요. 



Esper

Real-Time, In-Memory 기술로는 역시 CEP(Complex Event Processing)이 화두가 아닐까 합니다. 

Oracle, SAP 등 대기업들도 이러한 기술에 역량을 집중하고 있는데요. 

오픈소스인 Esper도 EPL이라고 하는 SQL과 유사한 스크립트 언어를 제공하는 등 잘 구성되어 있는 것 같습니다. 



CEP 기술은 수많은 이벤트에서 지정된 이벤트를 찾아내어서 필터링 할 수 있는 기술로 

흔히 이야기 하는 Event-Driven Architecture로 실시간 이벤트 처리 기술이라고 할 수 있습니다. 


Esper도 In-Memory 기술로 다음과 같은 아키텍처로 구성되어 있습니다. 



Esper로 데이터를 가져오기 위해서는 Storm을 함께 활용하기도 한다고 합니다. 


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함