[데이터 엔지니어링 데브코스 2기] TIL-15주차 Kafka와 Spark Streaming 기반 스트리밍 처리 (1)

이재호·2024년 1월 22일
0

1. 실시간 데이터 처리


구글 검색 엔진 -> 초기엔 주기적인(배치 O, 실시간 X) 페이지 검색 인덱스 정보 갱신 및 저장 -> 중간에 정보가 바뀌면 다음 갱신 전까지 잘못된 정보를 저장함 -> 실시간 데이터 처리의 필요

데이터 처리의 일반적인 단계.

  • 데이터 수집 -> 데이터 저장 -> 데이터 처리.

Throughput vs. Latency.

  • Throughput: 1초 동안 데이터를 얼마나 처리할 수 있는가. (처리량 관련, DW와 연관성 높음)
  • Latency: 데이터를 처리하는 데 얼마나 걸리는가. (처리속도 관련, 프로덕션 DB와 연관성 높음)
  • Bandwidth = Throughput * Latency.

SLA(Service Level Agreement).

  • 서비스 제공 업체와 고객 간의 계약(협의).
  • 특정 데이터가 특정 일시까지 얼만큼 어떤 형태로 제공되어야 한다 등.
  • API의 평균 응답 시간이 99% 이상 0.5초 전에 응답이 되어야 한다 등.

실시간 처리.

  • 연속적인 데이터 처리. (realtime, semi-realtime(micro batch))
  • 지연 시간(Latency, 처리 속도)이 중요함.
  • 배치 처리 다음의 고도화 단계.
  • 실시간 데이터를 event라 부르며, 한 번 생성되면 변하지 않음.
  • 이벤트 데이터를 저장하는 집합을 메시지 큐(이벤트 스트림)라고 함.
  • 스트리밍 메시지 큐 종류: Kafka, Kinesis, PubSub ...
  • 스트리밍 처리 기술: Spark Streaming, ...

온라인 서비스의 실시간 데이터 예시.

  • Funnel Data: 프로덕트 유입 경로, 클릭 종류, 구매 종류, 회원 등록 ...
  • Page Views and Performance Data: 페이지별 렌더링 시간, 디바이스 타입, 에러 이벤트, ...
  • 사용자 행동 데이터들의 데이터 모델 정의와 수집이 중요해짐.

실시간 데이터 - 리테일 비즈니스.

  • 재고 업데이트.
  • 주문 이벤트.
  • 배송 이벤트.
  • 재고가 떨어지면 자동 주문 가능.

실시간 데이터 - IoT.

  • 센서 판독값.
  • 장치 상태.
  • 알람 이벤트.

실시간 데이터 처리의 문제점.

  • 데이터 처리 속도가 데이터 생성 속도를 따라오지 못하는 경우. - 메시지 큐를 도입하여 문제를 최소화.
profile
천천히, 그리고 꾸준히.

0개의 댓글