데이터 엔지니어링

데이터 수집

codingreewon 2025. 9. 29. 23:37

- 카파 아키텍처(Kappa Architecture)

 : 대규모 데이터 스트리밍 처리를 위해 설계된 데이터 처리 아키텍처로 기존의 배치 처리 + 스트림 처리를 혼합하여 사용한 람다 아키텍처의 복잡성을 줄이기 위해 등장

 : 모든 데이터를 로그 형태로 메시지 큐에 저장하여 필요 시 언제든 다시 처리할 수 있도록 함

Q1. 카파 아키텍처에서 모든 데이터를 메시지 큐에 저장한다면 저장해야 할 데이터의 양이 너무 많아지지 않나?

 - 실제로 카파 아키텍처의 핵심 고민거리가 많은 저장 공간을 필요로 한다는 것

 - 실시간 처리와 과거 데이터의 재처리(reprocessing)을 동시에 만족하기 위해 로그 데이터를 메시지 큐에 오래 보관하는 것이 필요

 - 저장 데이터가 많아지는 문제의 해결 방법

  • Kafka의 분산 구조 + 압축 기능 활용
    • Kafka는 분산 저장이 가능해 여러 서버로 데이터를 나누어 저장
    • 오래된 메시지는 압축(compaction)하거나 TTL 설정으로 자동 삭제 가능.
  • 데이터 분류 및 보존 정책 수립
    • 모든 데이터를 저장하지 않고, 중요한 데이터만 장기 보관하거나 비핵심 데이터는 TTL 설정으로 자동 제거하는 정책 수립
  • 데이터 아카이빙
    • 오래된 데이터를 Kafka에서 S3, Hadoop, Glacier 등 외부 스토리지로 옮기고,
      필요할 때 다시 Kafka에 로드하여 재처리

Q2. TTL 설정이란?

 - "Time To Live", 즉 생존 시간을 의미하며 IT 시스템 전반에서 사용되는 개념

 - TTL은 데이터를 얼마 동안 저장할 것인지를 결정하는 설정으로 일정 시간이 지나면 해당 데이터는 자동 삭제

 - 비교

  • TTL : 일정 시간 후 자동 삭제되며, 주로 일반 로그 혹은 비중요 메시제에 사용
  • Log Compaction : 같은 키의 최신 값만 유지하는 방식으로 상태 저장 및 키-값 시스템에서 사용
  • 무제한 저장 : 데이터를 삭제하지 않는 방식으로 장기 분석 등에 사용

Q3. Log Compaction이란?

ex)

시간(s) 키(key) 값(value)
1 user1 가입
2 user1 로그인
3 user2 가입
4 user1 로그아웃

 

→ 일반 Kafka 토픽(모든 메시지 순서대로 보관)

→ Log Compaction에서는 가장 최신의 값만 보관

키(key) 값(value)
user1 로그아웃
user2 가입

 

 - 따라서 Log Compaction은 회원 상태 저장, 장바구니 정보 저장 등 상태 기반 시스템에 유용

'데이터 엔지니어링' 카테고리의 다른 글

데이터 생성  (0) 2025.09.15
데이터 시스템과 데이터베이스 기초  (0) 2025.09.08