[시계열] Chapter 05

유니·2022년 3월 23일
0

시계열

목록 보기
2/9

5. 시간 데이터 저장

  1. 시계열 데이터 스토리지 설계 시 고려해야 하는 데이터셋
  2. SQL 및 NoSGL 데이터베이스를 포함해 다양한 단층파일 형식의 장점

시계열 스토리지

  • 크기에 따른 성능 확장 방법에 대한 중요성
    : 상용 시스템에서 성능 지표를 수집하는 상황, 데이터가 오래될수록 덜 상세해지도록 조정할 필요
    → 오래된 데이터를 삭제하는 자동화된 스크립트를 사용
  • 데이터 접근에 대한 무작위적인 방식 대 순차적 방식의 중요성
    : 로컬 컴퓨터에 복사본을 둘 필요, 신뢰성이 보장되어야 하기 때문에 내용이 변하지 않은 형태로 저장
    → 데이터가 같은 정도로 접근
  • 자동화 스크립트의 중요성
    : 여러 다양한 데이터를 통합하여 하나의 시계열 데이터를 생성하는 상황
    → 데이터 처리 과정을 원하는 대로 손쉽게 수정 가능한 스토리지 솔루션 필요

요구사항 정의

스토리지를 고려할 때

  • 얼마나 많은 시계열 데이터를 저장해야 하나? 얼마나 데이터가 빠르게 증가해야 하나?
  • 측정에 대한 업데이트가 끊임없이 발생하거나, 측정이 구분되는 개별 사건 단위로 발생하나?
  • 데이터의 간격이 일정하거나 일정하지 않나?
  • 지속적으로 데이터를 수집할 것인가? 아니면 프로젝트가 마무리되는 시점이 정해져 있나?
  • 시계열로 하려는게 무엇인가? 실시간으로 시각화가 필요한가? 신경망이 수천번 반복적으로 접근할 전처리된 데이터 필요한가?

모든 모바일 기기에서 특정 웹페이지를 로딩하는 데 걸리는 시간을 기록하는 웹 서버를 구동한다고 가정할 때 **웹 페이지의 로딩 시간** 에 대한 데이터가 아닌 근무했던 시간 동안 기록된 데이터를 **간소화** 할 수 있다.
기간가장 많이 몰리는 시간로딩 횟수로딩 평균 시간로딩 최대 시간
2018/04/05 8pm - 8am11pm3,47021초45초

📍 가능한 데이터의 중복을 제거하고 종합하는 기법을 사용하여 데이터 스토리지를 간소화하는 것이 좋음

✔︎ 정보의 유실 없이 데이터를 줄일 수 있는 방법

  • 천천히 변하는 변수
    : 값이 변한 데이터만 기록
  • 노이즈가 낀 높은 빈도의 데이터
    : 높은 수준의 노이즈는 각 개별 측정의 가치를 떨어뜨림
  • 오래된 데이터
    : 오래된 데이터일수록 활용 가능성이 줄어듦

데이터베이스 솔루션

데이터베이스 : 데이터 분석가와 엔지니어에게 친숙하고 직관적인 데이터 저장 방식을 제공하는 솔루션

파일시스템이 아닌 데이터베이스를 사용하는 이유

  1. 여러 서버로 확장 가능한 스토리지
  2. 저지연의 읽기/쓰기
  3. 일반적인 지표의 내장된 계산 함수
  4. 시스템의 성능 튜닝 및 병목 문제 분석에 사용되는 문제 진단 및 모니터링 도구

SQL과 NoSQL

과거 SQL 솔루션은 트랜잭션 데이터에 기반함
트랜잭션 데이터 : 이미 존재하는 데이터의 업데이트가 빈번히 발생, 기본적으로 데이터가 정렬되지 않아 무작위적인 접근이 이루어짐

✔︎ 시계열 데이터의 특성

  • 읽기 작업보다 쓰기 작업이 지배적으로 발생함
  • 데이터의 쓰기, 읽기, 업데이트 작업은 임의의 순서가 아닌 일련의 사건이 일어나는 시간에 관련된 순서에 따라 이루어짐
  • 트랜잭션 데이터보다 훨씬 더 동시성 읽기가 수행될 가능성이 높음
  • 시간 외에 변수를 기본키로 두는 경우는 매우 드묾
  • 개별 데이터 삭제보다 데이터 뭉치를 삭제하는 것이 더 일반적

NoSQL의 적합성을 뒷받침함

SQL과 NoSQL을 선택하는 방법

데이터를 고려할 때 어떤 데이터 스토리지에도 항상 적용되는 원칙 :
같은 시간에 요청되는 경향이 있는 데이터는 같은 위치에 저장되어야만 한다

  • 시계열에 대해 SQL의 장점
    • 해당 데이터베이스에 이미 저장된 관련성을 가진 다른 비시계열 데이터와 손쉽게 연결 가능
    • 계층적인 시계열 데이터를 분명히 설명해주고 관련 시계열들의 그룹화를 가능하게 해줌
    • 시계열을 동일 데이터베이스에 저장하여 쉬운 검증 및 상호 참조 등의 이점을 누릴 수 있음
  • 시계열에 대해 NoSQL의 장점
    • 쓰기 속도가 빠름
    • 지능적이며 견고한 스키마 설계가 불가능한 경우에 유리함
    • 비전문가도 즉시 사용이 가능함

파일 솔루션

스트립트와 데이터 스토리지를 모두 통합 → 단층 파일

다음의 경우에는 단층 파일 솔루션을 선택하는 것이 좋음

  • 성숙된 데이터 형식이 완성되어 오랜 기간 동안 합리적으로 그 명세를 따를 수 있는 경우
  • 데이터 처리가 I/O와 밀접한 관련이 있어 속도의 향상에 개발 시간을 할애하는 것이 합리적인 경우
  • 데이터의 무작위적인 접근보다는 순차적인 접근이 필요한 경우

얻을 수 있는 이점

  1. 단층 파일은 특정 시스템에 종속적이지 않음
  2. 데이터베이스보다 I/O 오버헤드가 낮음
  3. 데이터의 읽히는 순서를 표현
  4. 데이터를 가능한 최대로 압축할 수 있어서 데이터베이스보다 훨씬 적은 양의 메모리를 차지

넘파이

: 수치형 데이터 보관에 널리 사용되는 방식 중 하나
단점 1) 단일 데이터 형식만 존재
단점 2) 행과 열에 라벨을 추가하는 자연스러운 방법이 없음
이점 1) 여러 가지 저장 옵션을 제공
이점 2) 스토리지나 분석 측면에서 즉시 사용 가능한 좋은 성능을 만족하는 데이터 구조

팬더스

: 손쉬운 데이터의 레이블링, 서로 다른 시계열 데이터의 저장
: 여러 종류의 데이터로 구성된 시계열 데이터에서 유용

Xarray

  • 차원에 명명할 수 있는 기능 제공
  • 넘파이같이 벡터화된 수학적 연산 제공
  • 팬더스같이 그룹화 연산의 제공
  • 데이터베이스같이 시간 범위 기반의 색인 기능 제공
  • 다양한 파일 스토리지 옵션 제공

: 시간에 대한 색인 및 리샘플링, 특정 시간의 개별 요소에 대한 접근과 같이 시간에 특화된 다양한 연산을 지원하는 데이터 구조
→ 파이썬의 데이터 구조로 pickle 및 netCDF라는 이진 파일 형식 두 개를 지원

0개의 댓글