본문 바로가기
Data/Data Engineering

데이터웨어하우스(Data Warehouse)란?

by 카프리썬 2021. 3. 16.
728x90

데이터웨어하우스

정보(data) + 창고(warehouse)가 결합한 의미로

의사결정에 도움을 주기 위해

분석가능한 형태로 변환한 데이터들이 저장되어 있는 중앙저장소

즉, 의사결정에 필요한 데이터가 들어있는 데이터베이스정도가 되겠다. 

트랜잭션 시스템, RDB 및 기타 소스의 데이터들이 데이터웨어하우스에 들어간다 

출처 https://kr.analysisman.com/2020/08/cloud-dw-cdp.html

어플리케이션이나 운영시스템내부에서 raw data들을 모아두고,

이들 중 분석할 수 있는 데이터들을 창고처럼 쌓아둔 다음에, 

이 데이터들을 데이터사이언티스같은 사람들이 BI나 SQL을 이용해서 데이터를 엑세스함

 

데이터웨어하우스가 왜 필요할까? 

쿼리로 그냥DB에 접근헤서 분석하면 되지 않을까? 라는 생각이 들었다.

 

이런 궁금증을 해소한 자료를 찾았다. 참고출처 : bomwo.cc/posts/Datawarehouse/

예를 들어, 이런 시스템이 있다고 하면 각 시스템에 맞게 데이터들이 데이터베이스에 쌓일 것이다.

  1. 결제 관리 시스템 : 사용자가 쇼핑을 하고 결제를 관리 하는 시스템 (사용자 결제 목록, 결제 내역)
  2. 재고 관리 시스템 : 현재 옷의 재고를 보고 수량을 관리하는 시스템 (현재 재고수량, 부족한 재고 수량)
  3. 주문 관리 시스템 : 쇼핑 주문는 하는 시스템 (주문 내역)
  4. 회원 관리 시스템 : 쇼핑몰 가입하거나 탈퇴하는 관리하는 시스템 (사용자 나이,성별,주소,유저 id

여기에서 6개월동안 회원들이 어떤품목을 얼마나 주문했는지를 알고 싶다면??

회원시스템+주문관리시스템을 조인하고 SELECT해서 어찌저찌 결과를 얻어낼 순 있을것이다. 

하지만 운영시스템에 접근하는 쿼리때문에 부하가 발생한다. (where조건에 기간을 둬서 다 select하기 때문에?)
결국 SQL은 단순히 작은규모의 데이터를 조회,삽입,삭제,수정을 하는 목적이다. 

즉, 대규모 데이터의 분석작업을 처리하는데는 한계가 있기 떄문에 데이터웨어하우스가 필요하다.

즉, 대규모 데이터의 분석작업을 처리하는데는 한계가 있기 떄문에 데이터웨어하우스가 필요하다.

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

 

데이터베이스는 분석하기에 너무 작은단위이다. 

데이터베이스는 data+base. 즉 토대일뿐이다. 

DB는 그저 해당정보시스템이 잘 돌아가게 잘 운영하기 위한 존재일뿐이지 분석목적이 아니다. 

 

즉, DW의 설계목적은 어떻게 잘 모아올 것이냐!  어떻게 예쁘게 쌓을것인가?

 

데이터를 한번에 마주잡이로 트럭에 실어오면 모아둔 의미가 사라진다.

어질러져있는 창고에서 필요한 물건을 찾는건 모아두지 않았을때 찾는것보다 힘들다 

그래서 미리 많이 쌓아본 이삿짐센터가 설계해둔 BI프로그램을 사용한다

참고 brunch.co.kr/@qqplot/46

 

 

데이터웨어하우스 아키텍쳐

출처 https://loustler.io/data_eng/diff-data_lake-data_warehouse/

가장 하위티어 : data

트랜잭션 시스템, RDB를 비롯한 데이터들 (주로 raw data라 불리는 것들)

 

ETL과정 : Extract,Transform,Load 

ETL과정을 거쳐 스키마에 적재해둔다. 

 

중간티어1 : 데이터웨어하우스 서버 

데이터를 액세스하고 분석하는 엔진 

데이터필드 또는 문자열과 같은 레이아웃 및 유형들을 설명하는 스키마로 구성

 

중간티어2 : OLAP 서버

데이터에 엑세스하고 분석하는데 사용되는 분석엔진들 

+추가) 예전에 용어정리 했던 내용 - OLAP과OLTP 알아보기 

 

상위티어 : Frontend

실제로 데이터를 분석하고 마이닝하고 보고할때 사용하는 부분 

통계,분석,데이터마이닝,ai등을 통해 분석한 결과를 리포팅한다. 

 

 

<이렇게 데이터웨어하우스를 갖추게 되면 얻는 이득>

  • 정보에 기반한 의사결정가능
  • 여러소스로부터 데이터통합
  • 데이터의 높은품질 (일관성,정확성)
  • 인텔리전스 기록
  • 분석처리 프로세스와 트랜잭션 데이터베이스의 성능향샹 

 

“MODERN” DATA ARCHITECTURES  (source: Snowflake)

데이터베이스(database)

트랜잭션의 세부사항을 기록하는 것 같이 데이터를 캡쳐하고 저장하는데 사용

목적이 트랜잭션을 처리하는 것 일뿐이다. 

 

데이터웨어하우스

데이터'분석'을 위해 특별히 설계된 구조

목적이 데이터분석이다.

 

데이터레이크

정형,반정형 및 비정형데이터를 비롯한 모든 가공되지 않은 다양한 종류의 데이터를 한곳에 모아둔 저장소

빅데이터를 효율적으로 분석하고 사용하고자 다양한 영역의 raw데이터를 한곳에 모아서 관리

 

데이터마트

특정 팀 또는 사업단위의 요구를 충족시킴 

규모가 더 작고, 집중적이며 사용자 커뮤니티에 가장 잘 맞는 데이터의 요약본 

 

 

참고 kr.analysisman.com/2020/08/cloud-dw-cdp.html

반응형

$(document).ready(function() { var $toc = $("#toc"); $toc.toc({content: ".tt_article_useless_p_margin", headings: "h2,h3,h4"}); });