앎을 경계하기

Data Science

실무 SQL 공부 2 - 데이터

양갱맨 2022. 1. 15. 19:08

1. 데이터의 종류

1. 업무 데이터

업무에 필요한 데이터

1. 트랜잭션 데이터

구매 데이터, 플레이 데이터 등 서비스와 시스템을 통한 사용자의 행동을 기록한 데이터

트랜잭션 데이터에는 회원ID, 상품ID와 같은 마스터 데이터가 포함되는 경우가 많다.

따라서 활용 시, 마스터 데이터와 결합이 필요함

2. 마스터 데이터

서비스와 시스템이 정의하고 있는 데이터

특정 회원이 상품을 구매한 이력이 저장된 트랜잭션 데이터가 있을 때, 어떤 상품의 카테고리가 가장 많이 팔렸는지를 알고 싶다면 회원, 상품 마스터 데이터를 결합시켜서 확인해야한다.

3. 업무데이터 특징

  • 데이터의 정밀도가 높음 - 데이터 처리 중 문제 발생 시, 트랜잭션과 롤백을 사용해서 이전 상태로 돌아가기 때문에 데이터의 정합성이 보증된다.
  • 갱신형 데이터 - 매일 다양한 데이터가 추가/갱신/제거 된다.
    • 데이터 추출 시점에 따라 데이터가 변경될 수 있음
  • 다뤄야하는 테이블 수 많음 - 여러 테이블을 결합해야 데이터 전체 내용을 파악할 수 있음

4. 업무데이터 축적 방법

  • 모든 데이터 변경 - 특정 기준을 기반으로 누적되는 것이 아니라면, 데이터 전체를 한꺼번에 바꿔서 최신 상태로 만든다.
    • 예) 우편번호 마스터, 상품 카테고리 마스터
    • 모든 데이터를 한 번에 바꿔버리면 과거의 정보를 완전히 잃기 때문에 주의해야한다.
  • 모든 레코드의 스냅샷을 날짜별로 저장 - 날짜의 경과에 따라 상태가 변할 수 있기 떄문에 용량 측면에선 비효율적이지만 2021-01-01 상품마스터, 2021-01-02 상품마스터 이런식으로 모든 레코드를 스냅샷으로 누적해놓는 것도 신뢰성 보장할 수 있는 방법
  • 어제와의 변경 사항만 누적 - 데이터 전송량/처리시간을 줄여야 한다면 차이가 나는 데이터만 누적하는 방법

5. 업무데이터 다루기

  • 정확한 값을 요구하는 경우 - 매출액, 사용자 수처럼 정합성 보장이 필요한 경우
  • 데이터 추출 시점에 따라 변하는 결과 - 업무데이터는 데이터 정합성이 보장되지만 변경될 수 있기 때문에 추출 시점과 축적 방법을 이해하고 있어야 한다.

2. 로그 데이터

업무에 직접 필요는 없지만 분석을 위해 필요한 데이터

일반적으로 생각하는 웹 로그 데이터가 아니라 통계, 분석을 주 용도로 설계된 데이터를 여기서는 로그 데이터라고 한다.

누적형 데이터라는 것이 핵심

로그 출력 이후 데이터가 변경되어도 기존 데이터를 수정하지 않는다.

1. 로그데이터 특징

  • 시간, 사용자 엔드 포인트, IP, URL 등 정보 저장 - 서비스 처리에 영향은 거의 없는 데이터를 저장함
  • 추출 방법에 따라 달라지는 정밀도
  • 과거의 데이터가 변경되지 않음 - 계속해서 누적하기 때문에 이전과 데이터 변동이 생겨도 과거 데이터가 변하지 않음

2. 로그데이터 축적 방법

  • 비컨형태 - 태그, SDK를 통해 사용자 장치에서 데이터를 전송하고 출력
  • 서버형태 - 클라이언트 쪽에서 별도 처리 없이 서버에서 로그를 출력함

3. 로그데이터 다루기

  • 사용자 유도 상황, 페이지뷰, 사이트 방문 횟수 등을 집계하고 분석할 때 사용
  • 최신 상태를 고려하는 분석엔 적합하지 않음 - 당시 상황 분석은 편리하지만 로그 출력 이후에 대한 변경 내용까지 고려하는 경우, 별도 가공이 필요함
  • 계속 기록을 누적하는 형태여서 추출 결과 변화가 적음 - 기간을 정해서 집계하는 경우, 로그데이터는 쿼리 결과가 바뀌지 않는다.
  • 업무데이터에 비해 데이터 정확도는 낮음 - 로그 추출에 따라 사용자 누락이나 크롤러의 로그가 함께 포함될 수 있기 때문에 정확한 값이 필요한 경우에 적합하지 않다.