데이터 웨어하우스란 사용자의 의사 결정에 도움을 주기 위해 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스를 말한다.

각 시스템은 각자의 목적에 맞게 역할이 있고 역할에 맞게 데이터베이스에 데이터를 저장한다. 예를 들어 6개월 기간 동안 회원들의 어떤 품목을 얼마나 주문했는지를 알고 싶다면 회원 시스템 + 주문 관리 시스템의 데이터베이스에 쿼리를 작성해서 데이터 분석을 할 수 있을 것이다. 하지만 운영 시스템에 쿼리(SELECT,JOIN)를 기간으로 작성하게 된다면 시스템에 부하가 발생하게 되어서 앱이 동작하지 않게 되거나 데이터베이스를 분석하는 동안 사용하지 못하게 된다. 시스템의 데이터베이스는 데이터를 작은 규모의 데이터를 조회, 삽입, 삭제, 수정을 빠르게 하기 위해 만들어진 시스템이라서 큰 규모의 데이터 조회를 했을 때에는 부하가 발생하게 된다.

이런 부하를 발생시키지않고 운영 DB를 추출하여 큰 규모의 데이터 조회 및 분석을 위해 만들어 진 것이 데이터 웨어하우스다.

데이터 웨어하우스는 도매점이라고 생각하면 쉽다

  • 사용하는 업무단위로 통합 저장하는 공간
  • 데이터 발생 지점의 환경, 서로 다른 구조(스키마), 사용용어 등에 문제가 있음
  • 데이터 정제, 버려지는 데이터 발생(데이터 레이크가 필요한 이유)
    • 데이터레이크란?
      • 데이터 레이크는 구조화 데이터와 비구조화 데이터 모두를 대량으로 저장할 수 있는 데이터 저장소 레포지토리이다.
      • 사전 처리 없이 형식에 관계없는 모든 데이터를 있는 그대로 저장한다.
      • 데이터 사일로가 존재하지 않는다.
    • 데이터 사일로란?
      • 한 조직 내의 정보의 집합이지만, 조직 내 다른 부서는 접근할 수 없는 분리된 정보
    • ETL이란?

      ETL : 추출(Extract) ➔ 변환(Transform) ➔ 로드(Load) 프로세스

      여러 시스템의 데이터를 단일 데이터베이스, 데이터 저장소, 데이터 웨어하우스 또는 데이터 레이크에 결합하기 위해 일반적으로 시행하는 파이프라인

      • 추출(Extract) : 원본 데이터베이스 또는 데이터 소스에서 소스 데이터를 추출하는 것

        • 부분 추출 - 변경된 레코드 추출

        • 전체 추출 - 어느 데이터가 변경되었는지 전혀 파악할 수 없는 시스템일 경우 사용, 마지막 추출의 사본을 같은 형식으로 추출하여 변경 사항을 확인

      • 변환(Transform) : 원시 데이터를 변환하여 다양하게 사용할 수 있는 형식으로 지정

        • 필터링, 정렬, 집계, 데이터 조인, 데이터 정리, 중복 제거 및 데이터 유효성 검사 등의 다양한 작업이 포함

        • 데이터의 품질과 무결성을 보장

        • 준비(staging) 데이터베이스에 업로드하는 것이 보편적(롤백할 수 있도록)

      • 로드(Load) : 변환된 데이터를 스테이징 영역에서 대상 데이터 웨어하우스로 이동

        ETL 처리방식

      • 배치 처리 : 작업이 한 번에 실행되고, 일부 데이터를 불러와 처리한 다음 종료

      • 스트림 처리 : 프로세스가 끊김 없이 실행되어 소스에 표시된 즉시 데이터를 얻는 것이 가능

        ETL의 장점

      • ETL 프로세스를 적용하여 개별 원시 데이터 세트를 분석용으로 적합하도록 보다 소비하기 쉬운 형식과 구조로 준비 가능

      • 정교한 변환 수행 가능

      • 민감 데이터 마스킹 또는 암호화 가능

        ETL에 수반되는 필요사항

      • 안정적인 데이터 파이프라인을 구축, 유지 필요

      • 데이터 품질을 유

데이터 웨어하우스의 목적

  1. 데이터를 기반한 의사 결정이 가능
  2. 여러 소스의 데이터를 통합해서 분석이 가능
  3. 과거 데이터 분석
  4. 기존 정보를 활용해 더 나은 정보를 제공
profile
얼레벌레 1년차가 된 개발자

0개의 댓글