개요
데이터 엔지니어 프로젝트를 진행하려고 여러 자료를 찾아보았는데, 많은 프로젝트에서 데이터 웨어하우스(이하 DW)를 구성하고 있었다. 그런데 예전부터 말만 들었지 정작 나도 DW를 구성하려고 하니 정확한 정의를 떠올릴 수가 없었다. 그래서 이참에 데이터 웨어하우스에 대한 정의를 명확히 하는 것이 좋겠다 싶어 정리를 해보려 한다.
참고로 해당 내용은 여러 프로젝트를 보다가 든 궁금증과 의문점들을 찾아 정리한 것이므로 순전히 나의 궁금증을 따라가며 정리되었음을 알린다
데이터 웨어하우스란
데이터 웨어하우스를 한 줄로 정의하면 다음과 같다.
데이터 웨어하우스는 조직 전체의 여러 소스로부터 데이터를 저장하고 처리하여 중요한 비즈니스 분석, 보고서 및 대시보드에 사용할 수 있는 의사결정 지원 시스템
해당 정의에서 주목해야 할 점을 볼드체로 표시하였다. 첫째, 여러 소스로부터 데이터를 한 곳에 저장한다는 점이다. DW는 여러 OLTP에서 데이터를 모아 한 곳에 저장하였다. 둘째, DW는 이렇게 한 곳에 모은 데이터를 이용하여 비즈니스 의사결정을 효율적으로 할 수 있도록 도와주는 시스템이다.
※ OLTP(Online Transaction Processing)란?
직역하면 온라인 트랜잭션 처리라는 뜻이다. 가장 중요한 용어는 트랜잭션인데, 우리가 데이터베이스 시간에 들어봤던 그 트랜잭션이 맞다. 즉, 온라인 상에서 사용자들이 DB에 하는 트랜잭션 처리를 의미한다. OLTP의 가장 큰 목적은 간단한 쿼리를 이용해 빠르게 데이터를 처리(INSERT, UPDATE, DELETE)하는 것이다.
왜 데이터 웨어하우스를 사용할까?
데이터 웨어하우스에 대한 정의를 어느정도 알아보았다면 드는 의문이 생길 것이다. 도대체 DW는 왜 사용하는 것일까? DW를 사용하는 목적이 무엇일까?
사실 사용목적에 대해서는 정의를 꼼꼼하게 읽어본 사람들에게는 생각하기 그리 어렵지 않을 것이다. DW를 사용하는 가장 큰 이유는 가장 좋은 품질의 데이터들을 한 곳에 구축한다는 것이다. 이를 Single Source of Truth라고도 한다.
예를 들어보자. 우리 모두 보고서를 작성할 때 많이들 했던 경험이 있을 것이다. 우리는 보고서를 수정할 때마다 새로운 버전의 보고서를 만들게 되고, 결국 끝없이 늘어가는 최종의 늪에 빠지고는 한다.
하지만 이런 악몽은 우리 뿐만 아니라 회사의 의사결정에서도 종종 일어나곤 했다. 데이터가 여기저기 흩어져있었기 때문에 회사는 의사결정을 할 때 도대체가 어떤 데이터가 최신의 데이터이고, 이 데이터가 어떤 것을 가리키는 데이터인지 도무지 분별하기가 어려웠던 것이다.
이러한 문제를 해결하기 위해 등장한 것이 바로 데이터 웨어하우스인 것이다. DW는 고객 데이터, 판매 데이터, 직원 데이터 등 다양한 데이터들을 한 곳에 모아 관리하는 Single Source of Data Truth이다. (직역하면 단일 진실 공급원인데, 이를 해석하면 모든 비즈니스 데이터를 하나의 공간에 저장하는 것을 말한다)
데이터 웨어하우스와의 비교
정의와 사용 목적에 대해서는 어느정도 알았는데, 내가 가지고 있던 가장 큰 혼란은 데이터 웨어하우스와 혼동되는 개념들이 너무 많다는 것이었다. 대표적으로 알고있던 AWS Redshift나 Google BigQuery 정도만 DW라고 생각하고 있었는데, 어떤 곳에서는 그냥 RDS를 DW로 사용하기도 하는 모습을 보며, 그냥 한 곳에 모여만 있으면 DW인가?하는 의문이 들었다. 그래서 이러한 의문을 확실히 풀기 위해 여러 데이터 저장소들과 비교를 해보려고 한다.
데이터베이스 vs 데이터 웨어하우스
우선 가장 의문이었던 데이터베이스(이하 DB)와의 비교이다. 가장 중요한 차이는 데이터를 어떻게 처리하느냐이다.
DB는 OLTP를 사용하여 데이터를 처리한다. OLTP에 대해서는 위에서 설명하였다. 반면 DW는 OLAP를 사용한다. OLAP를 간단하게 정리하면 데이터를 분석 및 집계를 통해 사용자의 의사결정을 돕는 것이다.
서점을 예로 들어보면 OLTP가 책 입고(INSERT), 수량 변경(UPDATE)와 같은 트랜잭션 하나하나라고 본다면, OLAP는 전체 책 수량 집계(COUNT), 오늘 판매된 책 합계(SUM)과 같은 집계값이다. 정리하면 OLTP는 데이터 소스를 제공하는 것이고, OLAP는 그 데이터 소스를 분석하는 기능으로 사용된다고 생각하면 된다.
위의 설명을 보면 DB와 DW가 아예 다른 목적을 가진다는 것으로 들릴 수도 있다. 하지만 DB를 DW를 사용할 수도 있다. 흔히 Postgres를 DW로 구성하기도 한다. 우리가 잘 아는 AWS Redshift도 PostgreSQL을 기반으로 한다고 한다.
데이터 레이크 vs 데이터 웨어하우스
데이터 레이크와 데이터 웨어하우스는 간단하게 정리할 수 있을 것 같다. 데이터 웨어하우스는 구조화된 데이터를 저장하고 특정 비즈니스 목적을 위해 정리 및 구성한 후 이를 보고 또는 BI 도구에 제공하는 엔터프라이즈 기술이다.
반면 데이터 레이크는 조금 더 최신의 기술이다. 데이터의 양과 종류가 많아지면서 무엇을 분석해야 할 지 어떻게 데이터를 처리해야할 지도 모르게 되면서 raw 데이터를 그대로 저장할 수 있도록 하는 기술이다.
출처
'데이터 엔지니어링 > 데이터 엔지니어링 기초' 카테고리의 다른 글
dbt 꼭 써야할까? dbt 정의/사용이유/필요성 (0) | 2022.05.17 |
---|---|
빅데이터를 지탱하는 기술 키워드 정리 - 上 (0) | 2022.03.18 |
빅데이터를 지탱하는 기술 Ch6 - 빅데이터 분석 기반 구축 (0) | 2022.01.05 |
빅데이터를 지탱하는 기술 Ch5 - 빅데이터의 파이프라인 (0) | 2022.01.03 |
빅데이터를 지탱하는 기술 Ch4 - 빅데이터의 축적 (0) | 2022.01.03 |