
데이터 웨어하우스란 사용자의 의사 결정에 도움을 주기 위해 기간시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환하여 관리하는 데이터베이스를 말한다.
각 시스템은 각자의 목적에 맞게 역할이 있고 역할에 맞게 데이터베이스에 데이터를 저장한다. 예를 들어 6개월 기간 동안 회원들의 어떤 품목을 얼마나 주문했는지를 알고 싶다면 회원 시스템 + 주문 관리 시스템의 데이터베이스에 쿼리를 작성해서 데이터 분석을 할 수 있을 것이다. 하지만 운영 시스템에 쿼리(SELECT,JOIN)를 기간으로 작성하게 된다면 시스템에 부하가 발생하게 되어서 앱이 동작하지 않게 되거나 데이터베이스를 분석하는 동안 사용하지 못하게 된다. 시스템의 데이터베이스는 데이터를 작은 규모의 데이터를 조회, 삽입, 삭제, 수정을 빠르게 하기 위해 만들어진 시스템이라서 큰 규모의 데이터 조회를 했을 때에는 부하가 발생하게 된다.
이런 부하를 발생시키지않고 운영 DB를 추출하여 큰 규모의 데이터 조회 및 분석을 위해 만들어 진 것이 데이터 웨어하우스다.
여러 시스템의 데이터를 단일 데이터베이스, 데이터 저장소, 데이터 웨어하우스 또는 데이터 레이크에 결합하기 위해 일반적으로 시행하는 파이프라인
추출(Extract) : 원본 데이터베이스 또는 데이터 소스에서 소스 데이터를 추출하는 것
• 부분 추출 - 변경된 레코드 추출
• 전체 추출 - 어느 데이터가 변경되었는지 전혀 파악할 수 없는 시스템일 경우 사용, 마지막 추출의 사본을 같은 형식으로 추출하여 변경 사항을 확인
변환(Transform) : 원시 데이터를 변환하여 다양하게 사용할 수 있는 형식으로 지정
• 필터링, 정렬, 집계, 데이터 조인, 데이터 정리, 중복 제거 및 데이터 유효성 검사 등의 다양한 작업이 포함
• 데이터의 품질과 무결성을 보장
• 준비(staging) 데이터베이스에 업로드하는 것이 보편적(롤백할 수 있도록)
로드(Load) : 변환된 데이터를 스테이징 영역에서 대상 데이터 웨어하우스로 이동
배치 처리 : 작업이 한 번에 실행되고, 일부 데이터를 불러와 처리한 다음 종료
스트림 처리 : 프로세스가 끊김 없이 실행되어 소스에 표시된 즉시 데이터를 얻는 것이 가능
ETL 프로세스를 적용하여 개별 원시 데이터 세트를 분석용으로 적합하도록 보다 소비하기 쉬운 형식과 구조로 준비 가능
정교한 변환 수행 가능
민감 데이터 마스킹 또는 암호화 가능
안정적인 데이터 파이프라인을 구축, 유지 필요
데이터 품질을 유