DW? DL? LH?

DW(Data Warehouse)

DW는 비즈니스 이해와 분석을 위해서 비즈니스 영역 안에 있는 데이터를 수집 및 통합하려고 디자인 되었다. 데이터 불륨이 증가함에 따라, 데이터가 생성되는 속도, 데이터 구조의 다양성 및 정확성도 증가 했다. 그래서 데이터 웨어하우스는 유연하고 통일적이며 효율적인 비용 방식으로 이러한 요구 사항을 해결해야 하는 어려움을 겪었다.

DL(Data Lake)

DW에서 겪는 문제를 해결하기 위해서 나온 디자인 아키텍처. 효율적인 비용으로 정형, 반정형, 비정형 포맷의 데이터 타입과 데이터의 크기 상관 없이 중앙 레파지토리(ex. Hdfs of Hadoop or Cloud Storage)에 저장할 수 있는 저장소 아키텍처를 말한다. 하지만, DW에서 가지고 있던 문제점을 모두 해결한 아키텍처가 아니기 때문에, 여전히 풀어야 할 숙제들이 있다.

문제점

  1. Transactional(ACID)를 지원하지 않는다.
  2. 비즈니스 인텔리전스(비즈니스 인사이트)를 위해서 설계되지 않았다.
  3. 데이터 사일로가 발생 시키는 데이터의 중복과 복잡
  4. 성으로 복잡한 환경이 발생했다.

데이터 사일로(Silo)란?

비즈니스에서 발생한 데이터가 각자 분리되어 간극이 생긴 상태를 말한다. 즉, 서로 다른 시스템에서 생성, 수집한 데이터가 각 부서나 업무에서만 사용되고, 다른 곳에서는 제대로 활용되지 못하는 상황을 말한다.

즉, 비즈니스에서 생성 및 수집 되는 데이터를 하나의 통합 저장소에 저장 및 관리하는 것이 아니라, 데이터의 목적 또는 부서에 따라서 각각의 데이터 저장소(DW)에 저장되는 형태가 발생한다. 이러한 경우, 비즈니스 인텔리전스가 왜곡된 인사이트를 도출 할 수 있는 문제가 발생할 수 있고, 데이터의 중복 또한 발생하여 비용 및 관리적인 부분에 매우 비효율적인 문제가 발생한다.

Lakehouse

레이크하우스는 DL의 유연성을 훼손하지 않으면서 모든 이점과 기능을 제공하는 DW의 현대화된 버전이라고 소개한다. LH는 개방형 테이블(open-table) 형식을 특징으로 하는 기술을 통해 데이터 신뢰성 및 일관성 보장과 결합된 저비용의 유연한 클라우드 스토리지 계층인 데이터 레이크를 활용한다.

레이크하우스는 ACID 트랜잭션을 지원하는 개방형 테이블 형식을 특징으로 하는 기술을 통해 저비용의 유연한 클라우드 스토리지 계층인 DL를 데이터 신뢰성 및 일관성 보장과 결합하여 활용한다. 이러한 유연성은 단일 통합 플랫폼에서 스트리밍, 분석, 머신 러닝과 같은 다양한 workload를 지원할 수 있도록 지원하므로 궁극적으로 모든 데이터 자산에 대해 단일 보안 및 거버넌스 접근이 가능하다.

Delta Lake와 Lakehouse의 등장으로 인해 이러한 아키텍처 패턴이 가능하게 된 주요 기능으로 인해 end-to-end 데이터 플랫폼의 패러다임이 전환되기 시작했다.

What is Delat Lake?

📌 lakehouse solution

Delta Lake is an open-table format that combines metadata, caching, and indexing with a data lake storage format. Together these provide an abstraction level to serve ACID transactions and other management features.

Delta Lake는 HDFS에 있는 원천 데이터(DL, DataLake)를 메타데이터, 캐싱, 인덱싱을 결합하여 open-table 생성할 수 있는 포맷이다. 또한 DL에서 제공하지 못했던 ACID 트랜잭션과 관리(ex. 타임트래블) 기능을 제공한다.

🏛️ Delta Lake Architecture

First, Storage Layer

Meallion Architecture 🥉🥈🥇

The Bronze Layer (Raw Data)

이론

data source에서 raw data를 어떤 변환 또는 비즈니스 룰 적용 없이 수집하는 단계를 말한다. 이 단계는 raw data의 “landing zone” 이다. 그래서 이 계층의 모든 테이블 구조는 source system의 구조와 정확하게 일치한다. 그래서 source data의 포맷은 유지되어 진다. 만약, source data의 타입이 CSV 파일인 경우, 그것은 브론즈 계층에서 CSV파일 형태로 저장되고, JSON 포맷일 경우, JSON 파일로 쓰여진다. 전형적인 DB Table에서 축출한 데이터의 경우, Parquet 또는 AVRO 파일 포맷으로 저장된다.