Miner

스트리밍 데이터 처리(3) - 배치/실시간 본문

데이터 엔지니어링/실시간 처리

스트리밍 데이터 처리(3) - 배치/실시간

MineTime76 2024. 2. 11. 15:38

데이터 배치 처리

배치 처리 - 주기적으로 데이터를 한 곳에서 다른 곳으로 이동하거나 처리

주기 = daily, hourly, 5분에 한번, 10분에 한번 (1분단위는 못함)

처리량(Thriughput)이 중요

데이터를 모아서 처리

처리 시스템 구조

  • 분산 파일 시스템(HDFS, S3)
  • 분산 처리 시스템(MapReduce, Hive/Presto, Spark DataFrame, Spark SQL)
  • 처리 작업 스케줄링에 보통 Airflow 사용

데이터 실시간 처리

연속적인 데이터 처리

  • realtime vs semi-realtime (micro batch)
  • realtime : 특정한 이벤트가 발생했을 때 (~카드를 사용했을 떄)
  • Semi-realtime : 분단위 보다 적은 간격으로 그 사이에 모아진 데이터를 처리

이 경우 지연시간(처리속도, Latency)이 중요

 

메세지 큐를 만들어 놓고 데이터를 생성하는 쪽과 소비하는 쪽이 생긴다. 

Kafka는 메세지 큐에 데이터가 들어가면 일주일 정도 보관가능하고

사용자 별로 포인터를 만들어서 읽을 수 있게 한다.

Event Stream

다른 형태의 서비스들이 필요해지기 시작함

  • 이벤트 데이터를 저장하기 위한 메세지 큐들 :  Kafka, Kinesis, Pub/Sub, ...
  • 이벤트 처리를 위한 처리 시스템 : Spark Streaming, Samza, Flink, ...
  • 이런 형테의 데이터 분석을 위한 애널리틱스/대시보드 : Druid