1. 데이터 스트리밍이란?
- 스트리밍(streaming) 데이터란 줄지어서 계속 유입되는 데이터를 의미합니다.
- 많은 서비스에서 수많은 사용자가 끊임없이 텍스트, 이미지, 영상 등의 데이터를 만들어 서비스에 전달합니다.
- 이런 특징을 보유한 스트리밍 데이터를 바로 저장하고 분석하는 기술을 스트리밍 분석 기술이라고 부르며, 실시간 분석이라고도 합니다.
- 예시 서비스
- 위치 데이터를 활용한 서비스
- 금융 거래 이상 여부 탐지 기능
- 소셜 네트워크
- 실시간 방송
- 은행 거래
- 멀티플레이어 게임
- 실시간 사기 탐지
- 소셜 미디어 피드
- 주식 거래 플랫폼
- GPS 추적
- 특히 여러 소스에서 데이터를 수집하는 실시간 분석
- 다양한 이기종 기기와 시스템의 데이터를 통합하는 엣지 컴퓨팅
- SIEM(Security Information and Event Management): 모니터링, 메트릭 및 위협 탐지를 위한 로그 및 실시간 이벤트 데이터 분석
- 소매/물류창고 재고 관리: 모든 채널 및 위치 전반의 재고 관리, 모든 장치 전반에서 원활한 사용자 경험 제공
- 차량 공유 매칭: 예측 분석을 위한 위치, 사용자 및 요금 데이터 결합 - 근접성, 목적지, 요금, 대기 시간을 기준으로 * 탑승자에게 가장 적합한 운전자 매칭
- 머신 러닝 및 A.I: 하나의 중앙 신경계에 대한 과거 및 현재 데이터를 결합하여 예측 분석에 대한 새로운 가능성 제시
- 차량 공유 서비스의 실시간 고객 매칭
- ex : 승객이 Lyft에 전화를 걸면 원활한 사용자 경험을 생성하기 위해 실시간 데이터 스트림이 하나로 결합됩니다. 이 데이터를 통해 애플리케이션이 실시간 위치 추적 정보, 교통량 통계, 요금, 실시간 교통 데이터를 종합하여 동시에 탑승자에게 가장 적합한 운전자를 매칭시키고 요금을 책정하며 실시간 데이터와 과거 데이터를 기반으로 목적지까지 가는 데 걸리는 시간을 예측합니다.
- 스트리밍 분석과 비교되는 개념에 배치(batch) 분석을 들 수 있습니다.
- 배치는 데이터를 먼저 저장하고 대량의 데이터를 일괄 분석하는 배치 처리를 진행합니다.
- 배치(일괄 처리)는 데이터를 일괄적으로 다운로드해야 실행 가능하지만, 스트리밍 데이터는 실시간으로 동시 처리, 저장 및 분석할 수 있습니다.
- 기존에는 데이터를 수집, 처리 및 구조화해야했지만, 스트리밍 데이터 아키텍처를 활용하면 계속 이동하는 데이터를 이용, 저장, 보강 및 분석이 실시간으로 가능합니다.
- 이벤트에 대한 실시간 응답이 필요한 상황에 적합합니다.
- 전통적으로 이벤트에 대한 실시간 응답이 필요한 애플리케이션은 데이터베이스와 메시지 처리 시스템에 의존했습니다.
- 이런 구조는 다수의 데이터를 처리하는 데 적합하지 않은 구조 입니다. 예를 들어, 기존의 요청 기반 시스템은 여러 소스의 빠른 데이터 요청에 신속하게 대응하기 어려울 수 있습니다.
- 이벤트 스트리밍 모델을 사용하는 이벤트는 데이터베이스에 저장되지 않고 로그에 기록됩니다. 이벤트 사용자는 스트림의 어느 부분에서든 데이터를 읽고, 언제든 스트림에 합류할 수 있습니다.
- 과거 데이터와 실시간 데이터를 단일 중앙 정보 소스로 통합할 수 있습니다.
reference
- https://www.oss.kr/oss_guide/show/015fda81-6e38-431b-9ac3-195020fcde06
- https://www.confluent.io/ko-kr/learn/data-streaming/
- https://www.redhat.com/ko/topics/integration/what-is-streaming-data