[빅데이터] 시계열 데이터 최적화

Woong·2022년 5월 4일
0

빅데이터

목록 보기
4/5

이벤트 시간과 프로세스 시간

  • 이벤트 시간 (event time)
    • 메시지가 생성된 시간
  • 프로세스 시간 (process time)
    • 서버가 처리하는 시간

프로세스 시간에 의한 분할

  • 분산 스토리지에 데이터를 넣을 때엔, 프로세스 시간(=서버 처리 시간)을 사용하는 것이 일반적
    • 풀 스캔 (full scan) : 다수의 파일을 모두 검색하는 쿼리
      • 불필요하게 전체 검사를 수행하면 자원 낭비가 심각
    • 이벤트 시간을 기준으로 집계하려면? -> 데이터 정렬 고려 필요

시계열 인덱스 (time-series index)

  • 이벤트 시간에 대한 인덱스 생성
    • 카산드라 등 시계열 인덱스 (time-series index)에 대응하는 분산 DB 활용
    • 이벤트 시간으로 인덱스된 테이블 생성
    • -> 짧은 범위의 특정 시간에 맞춘 데이터 집계를 빠르게 수행 가능해짐
  • 장기적인 데이터 분석에서는 부적절
    • 열 지향 스토리지 필요

조건절 푸쉬다운 (predicate pushdown)

  • ex) 일일 배치 처리로 이벤트 시간으로 데이터 정렬하여 열 지향 스토리지 변환
  • 열 지향 스토리지는 컬럼 단위의 통계 정보를 이용하여 최적화 수행
    • 컬럼의 최소/최대값 등 -> 시간이면 시작시간, 종료시간
    • 어떤 파일, 어떤 부분에 데이터가 있는지 알 수 있음
  • 이 통계를 이용해, 필요 최소한의 데이터만을 읽도록 하는 최적화가 조건절 푸쉬다운
    • 단, 주기가 지나치게 짧은 경우 과도하게 잘게 분산되어 데이터 로드 부하가 커짐

시계열 테이블 (time-series table)

  • 시간을 이용하여 분할된 테이블

데이터 마트만 이벤트 시간으로 정렬하는 방안

  • 데이터 수집 단계에선, 프로세스 시간만으로 데이터를 저장하고
  • 데이터 마트를 단계에서 이벤트 시간으로 정렬하여 구축
    • 파일이 조각나지 않고, 필요한 파일만 접근하도록 최적화

reference

  • 빅데이터를 지탱하는 기술 (서적)

0개의 댓글