본문 바로가기

[기획기사] 실시간 데이터 처리 분석 붐 중심에 선 오픈소스

support 게시글 작성 시각 2023-01-20 16:57:23 게시글 조회수 2799

 

실시간 데이터 처리 분석 붐 중심에 선 오픈소스

 

 

- 이지현 IT전문기자(j.lee.reporter@gmail.com) -

 

 

우리가 이용하는 서비스 중 상당수는 실시간 정보를 기반이다. 미리 저장된 정보를 활용하는 것이 아닌 현재 상황을 즉시 바로 반영하는 형태다. 실시간 교통정보, 실시간 예약, 실시간 영상 같은 서비스가 그런 부류를 대표한다고 볼 수 있다.

 

이렇게 실시간 서비스가 가능한 것은 그만큼 과거에는 없던 관련 인프라 기술이 발전했기 때문이다. 주류 클라우드 서비스에서도 실시간 데이터 분석 기술을 제공하지만, 오픈소스 업계에서도 대량의 데이터를 실시간으로 그리고 빠르게 처리하도록 돕는 기술이 많이 나오는 추세다.

 

스트리밍 데이터란 무엇인가

 

스트리밍(streaming) 데이터란 말 그대로 줄지어서 계속 유입되는 데이터다.

소셜 네트워크, 실시간 방송, 은행 거래 등을 고려해보면 수많은 사용자가 끊임없이 텍스트, 이미지, 영상 등의 데이터를 만들어 인프라에 전달한다는 것을 확인할 수 있다. 이런 특징을 보유한 스트리밍 데이터를 즉각적으로 저장하고 분석하는 기술을 스트리밍 분석 기술이라고 부르며, 앞에 별도로 실시간이라는 단어를 붙여 표현하기도 한다. 
 
스트리밍 분석과 비교되는 개념에 배치(batch) 분석을 들 수 있다. 과거에는 데이터를 일단 한번 저장하고 대량의 데이터를 일괄 분석한다는 배치 처리가 주를 이뤘다. 최근에는 스트리밍 분석에 대한 수요가 높아지는 추세인데, 그만큼 현재 확산되는 신규 웹서비스가 실시간 형태의 데이터 분석을 필요한다는 형태라는 점을 시사한다.

 

가령 위치 데이터를 활용한 서비스, 차량 공유 서비스의 실시간 고객 매칭, 금융 거래 이상 여부 탐지 기능처럼 많은 서비스가 지금 바로 사용자의 상황을 알아야 제공이 가능하다.  

 

스트리밍 데이터 분석 예시 
출처 : https://docs.aws.amazon.com

 

주요 엔터프라이즈 기업을 살펴보면 스트리밍 데이터 처리 서비스를 발 빠르게 내놓는 것을 알 수 있다.

아마존웹서비스(AWS)의 ‘아마존 키네시스 스트림’, 마이크로소프트의 ‘애저 스트림 애널릭틱스’, 구글 클라우드의 ‘클라우드 데이터 플로우’, IBM의 ‘IBM 스트림스’가 전형적으로 스트리밍 분석에 특화된 서비스다. 하지만 스트리밍 데이터를 분석하는 과정에서 오픈소스 기술도 대중적으로 활용되고 있다. 

 

실시간 분석을 위한 오픈소스 기술들

실시간 분석 기술을 가장 대표하는 오픈소스 기술에 먼저 아파치 카프카((Apache Kafka)가 있다. 아파치 카프카는 2011년에 처음 등장했으며, 링크드인 내부 조직에서 개발했다. 분산형 이벤트 저장 기술과 스트림 프로세스에 특화됐으며, 자바와 스칼라 언어로 작성되었다. 또한 카프카는 특히 실시간 데이터 피드를 처리하기 위해 높은 처리량과 짧은 대기 시간의 통합 플랫폼을 제공하는데 집중한다.

 

소셜 네트워크 서비스인 링크드인에 워낙 수많은 실시간 데이터가 수집 및 처리되다 보니 이를 처리하는 효율적인 기술을 개발하는 과정에서 카프카가 개발됐다.

카프카는 특히 5개의 API를 활용해서 데이터를 처리하는 구조를 갖는다.

 

링크드인에서 카프카를 다루던 핵심 인력은 이후 컨플루언트(Confluent)라는 스타트업을 설립하고 카프카의 기업용 서비스를 제공하며 카프카 생태계를 키우고 있다. 2014년 설립된 컨플루언트는 지금까지 총투자금 4억 5,600만 달러를 유치한 바 있다. 카프카 기술 자체는 아파치 재단에서 관리하는 중이다. 

 

 

카프카와 스파크 차이
출처:https://twitter.com/digitalogycorp/status/1254406624233443328

 

아파치 스파크(Apache Spark)도 스트리밍 데이터 분석 과정에서 활발하게 활용되고 있다.

아파치 스파크는 하둡과 비교되며 성장 발판을 마련했다. 하둡은 대용량 데이터를 분산 처리하는 자바 기반의 오픈소스 프레임워크이나 배치성 분석 기술에 차별화됐다.

 

그런 특성 탓에 실시간 분석에 활용하기에 부족하다는 평가가 존재했는데 해당 수요를 스파크가 채운 것이다. 스파크는 모든 데이터 운영을 메모리 내에서 실시간에 가깝게 처리할 수 있기에 일반적인 배치성 분석 외에도 스트리밍 분석에도 유용하게 활용할 수 있다.


아파치 스파크 기술은 UC 버클리 대학 연구소에서 개발한 기술이었으나 지금은 아파치 재단에서 직접 관리하고 있으며, 데이터브릭스(스파크 핵심 인력이 설립한 데이터 분석 전문 스타트업)가 기업용 서비스에 활용하고 있다. 특히 최근 스트리밍 분석 기술의 수요가 높아지자 자체적으로 '스트럭쳐 스트리밍(Structured Streaming)'이라는 스파크 SQL 엔진 위에서 사용할 수 있는 스트리밍 프로세싱 기술을 공개했다. 타 기술보다 다양한 기술 및 플랫폼과 결합할 수 있도록 최적화된 것이 특징이다. 

 

 

아파치 스파크 생태계 
출처: 데이터브릭스 https://catherine-shen.medium.com

 

아파치 플링크(Apache Flink)도 스트리밍 데이터 분석 업계에서 수요가 높다.

플링크 기술 기반은 2010년 독일에 있는 주요 공과 대학이 협업해 구성했다. 이후 아파치 재단의 지원을 받으면서 2015년 본격적으로 지금의 플링크 기술 형태가 공개돼 계속 업데이트되는 중이다. 플링크는 이벤트 시간 처리 및 상태 관리를 지원할 뿐만 아니라 처리량이 높고 대기 시간이 짧은 스트리밍 엔진을 추구한다. 언어는 자바, 스칼라, 파이썬, SQL로 작성될 수 있으며, 클러스터와 클라우드 환경에 최적화되어있다. 

 

앞서 언급한 기술보다 영향력은 적은 편이지만 아파치 스톰(Apache Storm)도 주목할만하다.

아파치 스톰은 기본적으로 분산형 실시간 데이터 분석 기술을 제공하면서 쉬운 사용법, 다양한 언어를 지원하면서 성장하고 있다.

 

백타입(BackType)라는 기업에서 개발한 오픈소스 기술이나 백타입이 트위터에서 인수되면서 트위터가 직접 관리하고 있다. 그 외 다양한 스트리밍 데이터 분석 기술을 살펴보고 싶다면, 여기 링크(https://github.com/manuzhang/awesome-streaming)에서 확인해보길 권장한다. 

 


※ 참고자료


1) https://docs.aws.amazon.com/whitepapers/latest/build-modern-data-streaming-analytics-architectures/what-is-a-modern-streaming-data-architecture.html
2) https://twitter.com/digitalogycorp/status/1254406624233443328
3) https://catherine-shen.medium.com/process-streaming-data-with-spark-structure-streaming-dad105b6e956

4) https://github.com/manuzhang/awesome-streaming

.
.
2023
공개SW 가이드/보고서 - 번호, 제목, 작성자, 조회수, 작성
번호 제목 작성자 조회수 작성
공지 [2024년] 오픈소스SW 라이선스 가이드 개정판 발간 file support 4211 2024-01-03
공지 [2024년] 기업 오픈소스SW 거버넌스 가이드 개정판 발간 file support 3401 2024-01-03
공지 [2024년] 공공 오픈소스SW 거버넌스 가이드 개정판 발간 file support 3373 2024-01-03
공지 공개 소프트웨어 연구개발(R&D) 실무 가이드라인 배포 file support 15818 2022-07-28
공지 공개소프트웨어 연구개발 수행 가이드라인 file OSS 15672 2018-04-26
448 [3월 월간브리핑] 3D 프린팅의 흐름을 바꾼 오픈소스 프로젝트 support 5170 2023-03-27
447 [기획] OpenAI-ChatGPT의 오픈소스 대안 support 7477 2023-02-20
446 [기획기사] 최근 자연어 처리 (NLP) 오픈소스 기술 현황 support 6886 2023-02-20
445 [2월 월간 브리핑] 한국어 자연어 처리(NLP) 오픈소스 프로젝트 support 10137 2023-02-20
444 [기획기사] 실시간 데이터 처리 분석 붐 중심에 선 오픈소스 support 2799 2023-01-20
443 [1월 월간 브리핑] 하둡을 잇는 오픈소스 분석 시장 신흥 강자 기술들 support 3176 2023-01-20
442 [기획] 오픈소스 데이터 시각화 도구 TOP 4 support 8093 2023-01-20
441 [12월 월간브리핑]자율주행 개발을 위한 오픈소스 모형차 플랫폼 현황 support 2099 2022-12-26
440 [기획] 자율주행 오픈소스 데이터셋 TOP 5 소개 support 8477 2022-12-26
439 [기획기사]자율주행기술을 주도하는 오픈소스 프로젝트와 기술 support 1817 2022-12-26
맨 위로
맨 위로