강의
스트리밍 데이터
배치 처리를 시작으로 서비스가 고도화되면서 실시간 처리 요구가 발생하기 시작했습니다.
동일 데이터 소비가 필요한 경우가 증가하여 다수의 데이터 소비자가 등장하였습니다.
종류
- Online Service
- Funnel Data
- Page Views and Performance Data
- 사용자 등록, 사용자 로그인, 방문자 발생
- Retail Business
- 재고 업데이트
- 주문 이벤트
- 배송 이벤트
- IoT(Internet of Things)
- 센서 판독값
- 장치 상태 업데이트
- 알람 이벤트
사용 사례
- Realtime Reporting
- A/B Test Analytics
- Marketing Campaign Dashboard
- Infrastructure Monitoring
- Realtime Alerting
- Fraud Detection
- Realtime Bidding
- Remote Patient Monitoring
- Realtime Prediction (ML Model)
- Personalized Recommendation
실시간 처리
"실시간 처리"는 연속적인 데이터 처리 입니다.
가장 중요한 성능은 지연시간(Latency) 입니다.
- 시스템 관리 복잡도 증가
- Event : 초단위 데이터
- 바뀌지 않는 데이터 (Immutable)
- 지속적으로 발생 (Event Stream)
- 새로운 형태의 서비스 필요
- Messaging Queue : Kafka, Kinesis, Pub/Sub
- 처리 시스템 : Spark Streaming, Samza, Flink
- 애널리틱스/대시보드 : Druid
시스템 구조
- Producer(Publisher) : 데이터 생성
- Messaging Queue : 시스템 저장
- 데이터 스트림 각각 별도 데이터 보유 기한 설정
- Consumer : 데이터 읽기 및 처리
- Consumer 각각 별도 포인터 유지
- 다수의 Consumer 데이터 읽기 공동 수행 가능
장점
- 즉각적인 인사이트 발견
- 운영 효율성 향상
- 에러 이벤트에 신속 대응
- 효율적인 개인화 사용자 경험
- 센서 데이터 활용
- 사기 탐지 및 보안
- 실시간 협업 및 소통
단점
- 전체 시스템 복잡성 증가
- 운영 비용 증가
챌린지
- 이벤트 데이터 모델 결정
- 최소 Primary Key 및 Timestamp 필요
- 이벤트 데이터 전송/저장
- Point to Point : Many to Many 필요
- Messaging Queue : 중간 데이터 저장소 이용 → 생산자와 소비자가 decouple된 상태
- 이벤트 데이터 처리
- Point to Point : Consumer 부담 증가 (Backpressure) → Low Throughput Low Latency
- Messaging Queue : micro-batch
- 이벤트 데이터 관리 이슈 모니터링 및 해결
Realtime vs Semi-Realtime
Realtime
- 짧은 Latency
- 연속적인 데이터 스트림
- 이벤트 중심 아키텍쳐
- 동적 및 반응형
Semi-Realtime
- 합리적인 Latency
- 배치와 유사 (Micro-Batch)
- 적시성과 효율성 사이의 균형
- 주기적인 업데이트
'데브코스 TIL > 빅데이터, 스트리밍 데이터 처리' 카테고리의 다른 글
Kafka 소개 (0) | 2024.01.24 |
---|---|
Lambda Architecture (0) | 2024.01.22 |
데이터 처리 변천 (1) | 2024.01.22 |
배치 처리 소개 (0) | 2024.01.22 |
Spark 클라우드 (0) | 2024.01.22 |