데이터 엔지니어를 하기 위해 준비하면서 앞으로 공부한 것들을 정리하고자 한다.

먼저 데이터 웨어하우스(Data Warehouse)와 데이터 레이크(Data Lake)가 무엇인지 또 그차이는 무엇인지 공부하고 정리해보았다.

먼저, 데이터 웨어하우스(Data Warehouse, DW)

데이터 웨어하우스는 정보에 입각한 의사 결정을 내릴 수 있도록 분석 가능한 정보의 중앙 repository다

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

이렇게 데이터웨어하우스에 있는 데이터들을 Business Analyst나 Data Scientist 와 같은 사람들이 BI(Business Inteligence)나 SQL 등을 이용해서 데이터에 액세스 한다

Data Warehouse Architecture

주로 아키텍처는 이렇다

하단 티어 즉 최하위에 있는 부분은 Data 부분인 위에서 말했던 트랜잭션 시스템, RDB 등을 비롯한 데이터들이고 이것들이 ETL(Extract Transform Load) 과정을 거쳐서 Data Warehouse에 적재가 된다

중간 티어 OLAP Server는 데이터에 액세스하고 분석하는데 사용되는 분석엔진 들이다, 여기서 OLAP란 OnLine Analytical Processing을 말한다.

상위 티어는 사용자가 실제로 데이터를 분석하고 마이닝을 하고 또 보고할 때 사용하게 되는 frontend가 존재하는 티어다.

이렇게 이루어진 데이터 웨어하우스는 데이터를 정수, 데이터 필드 또는 문자열과 같은 레이아웃 및 유형들을 설명하는 스키마로 구성함으로써 동작하게 된다. 즉 ETL, 데이터를 추출해서 변환해서 스키마에 적재해두는 것이다

그래서 이렇게 데이터를 구성하여 데이터 웨어하우스를 갖추었을 때 우리는

  1. 더 나은 의사결정
  2. 여러 소스로부터의 데이터 통합
  3. 데이터의 품질, 일관성 및 정확성
  4. 인텔리전스 기록
  5. 분석 처리프로세스를 트랜잭션 데이터베이스로부터 분리하여 두 시스템의 성능 향상을 도모

의 이득을 취할 수 있다.

그러면 이런 데이터 웨어하우스와 우리가 흔히 알고 있는 데이터 베이스의 차이는 무엇일까?

특징 Data Warehouse Database
적합한 워크로드 분석, 보고, 빅데이터 트랜잭션 처리
데이터 원본 여러 소스로부터 수집되고 정규화된 데이터 트랜잭션 시스템과 같이 단일 소스에 있는 그대로 캡처한 데이터
데이터 캡처 대개 미리 결정된 대량 배치 일정에 따른 대량 쓰기 작업 트랜잭션 처리량을 최대화할 수 있도록 새로운 데이터가 사용할 수 있어 지속적인 쓰기 작업에 최적화 됨
데이터 정규화 스타 스키마 또는 눈송이 스키마와 같이 비정규화된 스키마 고도로 정규화된 정적 스키마
데이터 스토리지 컬럼 방식 스토리지를 사용하여 간단한 액세스 및 고속 쿼리 성능에 대해 최적화 단일 행 지향 물리적 블록에 대한 고도의 처리량 쓰기 작업에 최적화
데이터 액세스 I/O를 최소화하고 데이터 처리량을 최대화하도록 최적화 대량의 소규모 읽기 작업

여기에서 스타 스키마와 눈송이 스키마는 다차원 모델링에서 사용되는 스키마 형태로 모델의 모양을 연상하면 된다.

스타 스키마와 눈송이 스키마는 별도의 포스트에서 다루도록 하겠다.

이어서 데이터 레이크(Data Lake)는 최근 10년간 데이터 파이프라이닝의 중요한 구성 요소 중 하나를 설명하기 위해 등장한 용어이다. 데이터 레이크는 데이터 웨어하우스와는 달리 별도로 정형화나 정규화 등을 하지 않고 데이터를 있는 그대로 원시데이터 상태를 저장한다는 것이다.

그러다보니 사용하는 쪽에서는 원시 데이터를 원하는 대로 가공하여 사용할 수 있다. 데이터 웨어하우스는 정형화된 데이터를 사용자가 약간의 변화를 통해서 동일하게 본다면, 데이터 레이크는 원시 데이터를 사용자가 원하는대로 가공하여 본다는 점이다.

또한 이런 데이터 레이크로 유입되는 데이터들은 자신의 출처와 시간 같은 메타데이터가 존재하여야 한다.

또 데이터 레이크는 스키마가 존재하지 않으므로 이 원시 데이터를 어떻게 사용할지는 전적으로 사용자에게 달려있다.

데이터 레이크는 그 크기가 매우 커질것이고 대부분의 저장소는 스키마가 없는 큰 규모의 구조를 지향하기 때문에 일반적으로 데이터 레이크를 구현을 할 때 Hadoop과 HDFS를 비롯한 에코시스템을 사용하는 것이다.

데이터 웨어하우스(DW)와 데이터 레이크의 차이점은 아래표와 같다

  Data Warehouse Data Lake
데이터 트랜잭션 시스템, 운영 데이터베이스 및 사업부서 애플리케이션의 관계형 데이터 IoT 디바이스, 웹사이트, 모바일앱, 소셜 미디어 및 기업 애플리케이션의 비관계형 및 관계형 데이터
스키마 데이터 웨어하우스 구현 전에 설계됨(Schema on write) 분석 시에 쓰여짐(Schema on read)
가격/성능 고비용의 스토리지를 사용하여 가장 빠른 결과를 얻음 저비용의 스토리지를 사용하여 쿼리 결과의 속도가 빨라짐
데이터 품질 신뢰할 수 있는 중앙 버전 역할을 하는 고도의 큐레이트된 데이터 큐레이트될 수 있거나 될 수 없는 모든 데이터(즉, 원시데이터)
사용자 Business Analyst, Data Scientist, Data Engineer Data Scientist, Data Engineer, Business Anlayst
분석 배치 보고, BI 및 시각화 기계 학습, 예측 분석, 데이터 디스커버리 및 프로파일링

데이터 레이크와 데이터 웨어하우스와 그 차이점에 대해서 간단하게 알아보았다


포스트에 대한 피드백이 있으시다면 여기로 메일 부탁드립니다. 읽어주셔서 감사합니다.