1264 words
6 minutes
[spark]MPP와 데이터레이크 하우스 관점에서의 Spark

01. Overview#

  • MPP DW(Massively Parallel Processing Data Warehouse)와 데이터 레이크하우스(Data Lakehouse) 관점에서 Spark의 아키텍처적 역할을 간단히 정리

02. Apache Spark의 아키텍처적 정체성#

  • Spark는 단순 분산 처리 엔진이나 MPP 엔진의 일종으로 생각될 수 있음
  • 시스템 설계 관점에서 spark는 단순 MPP엔진보다는 “스토리지와 완전히 분리된(Compute-Only), 다목적(General-Purpose) 인메모리 분산 컴퓨팅 엔진” 에 보다 가까움
  • 스토리지 독립성: 전통적인 MPP 엔진(Redshift, Teradata)이 빠른 쿼리를 위해 스토리지와 컴퓨팅을 강하게 결합하는 것과 달리, Spark는 밑단에 S3가 있든 Kafka가 있든 상관없이 데이터를 가져와 가공하는 데 집중
  • 다목적 : SQL뿐만 아니라 Python, Scala를 이용한 복잡한 데이터 변환, 머신러닝(ML), 스트리밍을 단일 파이프라인에서 처리가능

03. 핵심 아키텍처 패러다임 비교#

1. MPP DW 중심 (Modern Data Stack)#

  • 데이터 애널리스트(DA)와 비즈니스 인텔리전스(BI)의 생산성을 극대화하는 데 초점을 맞춘 아키텍처
  • ex) Snowflake, Google BigQuery 등

주요 특징 및 사용 상황#

  • ELT 패턴: SaaS 도구(Fivetran 등)를 통해 원본 데이터를 DW에 일단 밀어 넣고(Load), DW 내부의 막강한 컴퓨팅 파워를 이용해 SQL로 변환(Transform) .
  • 장점: 인프라 관리의 부담이 거의 없음(Serverless),
  • 구축 속도가 빠르며 SQL만으로 파이프라인 통제가 가능
  • 단점: 비정형 데이터(이미지, 복잡한 텍스트 로그) 처리나 초단위 리얼타임 스트리밍, 대규모 딥러닝 모델 학습에는 부적합

2. Spark 중심 데이터 레이크하우스 (Medallion Architecture)#

  • 저렴한 객체 스토리지(S3 등) 위에 데이터 레이크를 구축
  • Spark를 연산 엔진으로 사용하여 DW의 기능까지 수용하는 아키텍처
  • 이런 형태를 항상 메달리온 아키텍처라고 하진 않지만 보통 구현시 이런식으로 진행.

주요 특징 및 사용 상황#

  • 메달리온 아키텍처(Medallion Architecture): 데이터의 정제 수준에 따라 스토리지를 논리적으로 분리
  • Bronze: 원본 데이터 (Raw)
  • Silver: 필터링 및 정제된 데이터 (Cleansed)
  • Gold: 비즈니스 로직이 반영된 집계 데이터 (Curated)
  • 한계점: 인프라 튜닝(메모리 관리, 셔플링 최적화) 등 엔지니어링 리소스가 크게 소모. 이 경우 DataBricks 같은 Managed Service 사용을 검토할 수있음

04. 아키텍처 선택 방법론#

어떤 아키텍처를 선택할지는 결국 **“병목이 어디에 있는가?”**에 기반함

  • MPP DW를 선택해야 할 때: 분석가들이 데이터를 원할 때 엔지니어의 병목 없이 즉각적으로 BI 대시보드를 만들어야 하는 “Data Serving”이 가장 중요할 때.
  • Lakehouse (Spark)를 선택해야 할 때: 정형/비정형 데이터가 혼재되어 있고, 단순 SQL로는 표현할 수 없는 복잡한 전처리 로직이나 거대한 머신러닝 파이프라인이 비즈니스의 핵심일 때.

아이디어 코드 비교 (동일한 로직의 추상화 차이):

-- MPP DW (dbt)
-- 꼭 dbt가 아니어도 됨
WITH cleaned_data AS (
SELECT user_id, LOWER(email) AS email
FROM raw_users WHERE is_active = true
)
SELECT * FROM cleaned_data;
# Lakehouse (Spark 기반 Python)
df = spark.read.parquet("s3://raw-data/users")
cleaned_df = df.filter(df.is_active == True) \
.withColumn("email", lower(df.email)) \
.withColumn("sentiment", apply_custom_nlp_model(df.comments))
cleaned_df.write.format("delta").save("s3://silver-data/users")

Concept

  • MPP (Massively Parallel Processing) : 대규모 데이터를 여러 노드에 분산시켜 병렬로 처리하는 아키텍처. 주로 빠른 SQL 쿼리 응답에 최적화됨.
  • Modern Data Stack (MDS) : 클라우드 DW를 중심으로 Fivetran(추출/적재), dbt(변환), BI 툴을 결합하여 분석가 주도적으로 운영되는 최신 데이터 인프라 조합.
  • ELT (Extract, Load, Transform) : 데이터를 먼저 타겟 시스템(DW)에 적재(Load)한 후, 타겟 시스템의 연산력을 이용해 변환(Transform)하는 패턴.
  • Medallion Architecture : 데이터 레이크하우스에서 데이터 품질을 통제하기 위해 Bronze(원천), Silver(정제), Gold(집계) 레이어로 나누어 관리하는 데이터 설계 패턴.

Key_Takeaways

  • Spark는 MPP DW와 달리 스토리지와 완전히 분리된 인메모리 연산 엔진에 가까움
  • Spark의 기본적인 핵심역할은 데이터와 컴퓨팅을 분리하는 것. 따라서 MPP DW랑 다른 관점에서 생각해야함.
  • MPP DW 중심의 Modern Data Stack은 SQL 기반 분석가의 접근성과 빠른 BI 서빙 중심 아키텍처에서 장점을 가짐
  • Spark 중심의 데이터 레이크하우스는 비정형 데이터 처리, 머신러닝 연동, 복잡한 ETL에 유연하게 대응가능

[[spark-architecture]] [[de-spark-03-rdd]] [[de-spark-03-rdd]]

[spark]MPP와 데이터레이크 하우스 관점에서의 Spark
https://yjinheon.netlify.app/posts/02de/spark/de-mpp-vs-data-lakehouse/
Author
Datamind
Published at
2026-03-02
License
CC BY-NC-SA 4.0