'데이터 실시간 분석 및 처리' 플링크를 활용한 클라우데라의 해결책 CSA
실시간 분석에 대한 기업의 열망은 나날이 커지고 있다. 비정형 데이터를 주로 다루던 시절부터 잠재되어 온 실시간 분석 수요는 클라우드와 엣지 컴퓨팅 시대를 맞아 폭발적으로 늘 것으로 보인다. 하지만 실제 데이터 플랫폼을 관리하는 운영자들에게 실시간 분석은 예나 지금이나 골치 아픈 주제다. 대량 데이터를 수집해 처리하고 이에 대한 실시간 접근을 보장하는 것은 쉬운 일이 아니다. 이때의 '실시간'은 수초 이내에 데이터를 수집하고 처리하여 사용자나 분석 도구가 접근해 필요한 액션을 취할 수 있음을 의미한다.
운영자들이 꼽는 실시간 분석의 어려움은 다섯 가지로 요약할 수 있다. 데이터 준비 및 전파 소요 시간 단축, 대량의 데이터 처리, 비즈니스 사용자 접근성 보장, 구현에 필요한 전문 지식 부족, 실시간 처리를 위한 도구 부족이다. 이런 고민을 푸는 방법도 다양하다. 이중 최근 많은 조직이 주목하는 것이 아파치 플링크(Flink)를 통한 방법이다. 플링크는 오픈소스 기반 실시간 데이터 처리를 위한 분산 스트림 처리 소프트웨어다. 넷플릭스, 우버, 알리바바, ING 등 유명 기업들이 앞다투어 도입할 정도로 인기를 얻고 있다.
플링크에 열광하는 이유
SQL을 알면 플링크를 통한 실시간 스트림 처리에 도전할 기회가 생긴다. 새로 배우고 익히는 것이 아니라 알고 있는 것을 활용해 실시간이란 새로운 응용 분야를 개척할 수 있게 돕는다는 점에서 매력적이다. 쉽기만 한 것이 아니다. 매우 강력한 운영도 지원한다.플링크는 분산 처리를 통해 실시간 스트림을 효율적으로 다룬다. 플링크는 히스토링성 데이터를 가져와 이벤트나 작은 배치 단위로 처리 후 저장한다. 분산 처리를 기반으로 하다 보니 이벤트 지향적인 애플리케이션, 스트리밍 파이프라인, 스트리밍 및 배치 기반 분석 같은 여러 작업을 동시에 수행하기에 적합하다. 대량의 트래픽이 발생해도 여러 노드에 분산하면 된다.
플링크의 분산 처리 구조는 다양한 유형의 애플리케이션과 서비스에 적합하다. 플링크는 전통적인 트랜잭션 기반 애플리케이션처럼 스테이트리스(Staleless) 방식은 물론이고 이벤트 지향적인 애플리케이션의 스테이트풀(Statefull) 방식의 스트림 처리에 유리하다. 실시간 처리 지연을 일으키는 병목이 우려되면 노드나 인스턴스를 늘리면 된다. 이 밖에도 JDBC 커넥터를 이용해 가상 테이블을 생성하거나, 최근 결과를 데이터베이스에서 일일이 가져오지 않고 캐시를 통해 빠르게 처리하는 기능 같은 유용한 옵션들을 제공한다. 더불어 실시간 데이터 처리 관련 애플리케이션을 위한 API도 풍부하게 제공해 개발 편의성도 높다.
플링크의 강력함과 편리함을 강화한 Cloudera Streaming Analytics (CSA)
오픈소스 도입과 활용을 고민할 때 엔터프라이즈의 요구 사항을 담을 수 있으면 얼마나 좋을까? 많은 기업이 이런 생각을 한다. 플링크 역시 마찬가지다. 이런 요구를 수용하기 위해 클라우데라는 Cloudera Streaming Analytics(CSA)를 제공한다. CSA를 이용하면 배포, 모니터링, 롤백 등 관리 작업을 매우 편리하게 할 수 있다. CDP, CDH를 사용 중이라면 동일한 관리 환경에서 CSA를 다룰 수 있다. 특히 모니터링의 경우 대시보드를 통해 잡(Job)을 매우 세밀한 수준까지 파악할 수 있다.CSA의 강점은 사용자 편의성에서 빛을 발한다. 클라우데라는 2020년 이벤트도어(Eventdor)를 인수하였는데, 이벤트도어의 스트림 데이터 처리 역량을 토대로 한 SQL 스트리밍 빌더(SQL Streaming Builder)를 제공해 CSA의 편의성을 극대화하고 있다. SQL 스트리밍 빌더를 사용하면 SQL만 알아도 플링크를 완벽히 컨트롤할 수 있다. 자바나 스칼라 같은 언어에 대한 프로그래밍 지식이 없어도 플링크를 실행하고, 데이터에 접근하는 데 불편함이 없다. 따라서 SQL문만 익히면 현업 사용도 데이터 과학자나 개발자 못지않게 플링크를 활용해 데이터 가치를 높일 수 있다.