카테고리 없음

Databricks 데이터 엔지니어링 실습 정리: Delta Lake와 워크플로우 중심으로

상꼬 2025. 6. 3. 17:38
728x90
반응형

요즘 데이터 관련 플랫폼 공부를 하다 보니 Databricks가 자주 언급되길래
직접 자료도 찾아보고 공식 영상도 보면서 내용을 정리해봤다.
특히 나는 데이터 엔지니어링 쪽이 관심이 많아서, 관련 내용을 위주로 메모한 내용이다.


📌 데이터브릭스란?

"데이터브릭스는 빅데이터, 데이터 엔지니어링, 데이터 사이언스, 인공지능(AI) 업무를 하나의 플랫폼에서 수행할 수 있는 통합 데이터 분석 플랫폼이다."

즉, 분석이든 머신러닝이든 하나의 환경에서 처리 가능하다는 것이 핵심이고 그 배경에는 Databricks가 제안하는 Lakehouse Architecture가 있다. 정리하자면,

구성 요소설명
Lake 비정형/원시 데이터를 빠르게 쌓아둘 수 있는 공간 (ex. Data Lake)
Warehouse 정형화된 쿼리 성능 중심의 구조 (ex. Redshift, BigQuery)
Lakehouse 위 둘의 장점을 통합한 구조. Delta Lake가 핵심 기술

 세대별 데이터 플랫폼 비교

구분 1세대 데이터 플랫폼 2세대 데이터 플랫폼 3세대 데이터 플랫폼 (레이크하우스)
핵심 저장소 데이터 웨어하우스 (DW) 데이터 웨어하우스 (DW) 데이터 웨어하우스 + 데이터 레이크
데이터 유형 정형 데이터만 처리 정형, 반정형, 비정형 가능하지만 DW에 맞춰 변환 필요 정형, 반정형, 비정형을 모두 직접 저장 및 처리
데이터 수집 방식 ETL (정형 데이터만 적재) ETL (비정형 포함 가공하여 DW 적재) ELT 또는 직접 사용 (변환 없이 사용 가능)
지원 분석 도구 BI, 리포트 BI, 리포트, 통계분석, ML/DL BI, 리포트, 통계분석, ML/DL
기계학습/딥러닝 활용 미지원 또는 제한적 (데이터 이관 필요) DW에서 일부 가능, 별도 시스템 필요 직접 처리 가능 (ML/DL도 같은 저장소에서 바로 수행)
데이터 거버넌스/관리 없음 제한적 메타관리, 거버넌스, 캐싱, 파일 인덱싱 통합 제공
데이터 저장 구조 DW만 사용 (스키마 기반) DW 중심 (파일은 보조 역할) 테이블 + 파일 통합 저장 (하이브리드 구조)
대표 기술 Oracle DW, IBM Netezza 등 Redshift, Teradata, BigQuery 등 Databricks (Delta Lake), Snowflake, Apache Iceberg 등

 


🧱 데이터 엔지니어의 역할

  • 데이터를 수집하고
  • 정제하고
  • 저장하며
  • 분석/AI 팀이 활용할 수 있도록 가공하는 사람

즉, 데이터가 흘러갈 수 있는 길을 만들고 유지보수하는 일. 그런데 중요한 건 이 모든 과정을 Databricks 하나에서 처리할 수 있다는 점.


🧪 실습 데모 요약: 데이터 수집 → 정제 → 저장 → SQL 활용 → 자동화까지

 

1. 데이터 수집 (CSV 불러오기)

df = spark.read.format("csv") 
          .option("header", "true") 
          .option("inferSchema", "true") 
          .load("/databricks-datasets/samples/population-vs-price/data_geo.csv")
  • Databricks에 내장된 샘플 데이터셋 사용
  • schema 자동 추론
  • spark.read는 익숙한 PySpark 구문

2. 데이터 정제

from pyspark.sql.functions import col 

df_clean = df.filter(col("2014") > 0) 
             .withColumnRenamed("2014", "price_2014")
  • 조건 필터링
  • 컬럼명 변경
  • 필요한 경우 cast()로 타입 변환도 가능

3. Delta Lake 저장

df_clean.write.format("delta")
        .mode("overwrite")
        .save("/mnt/delta/population_price")
  • Delta 포맷으로 저장
  • overwrite 모드로 덮어쓰기
  • Delta 포맷의 장점은 ACID 지원 + 버저닝 + 빠른 성능

4. 테이블 등록 (SQL에서 접근 가능하게)

CREATE TABLE IF NOT EXISTS population_price 
    USING DELTA 
    LOCATION '/mnt/delta/population_price'
  • SQL에서 바로 쿼리할 수 있도록 등록
  • 이후에는 SELECT * FROM population_price 처럼 바로 사용 가능

5. 워크플로우 자동화

실습에서는 Databricks Workflows도 설정했는데, 대략 다음과 같은 방식으로 구성된다.

  1. 작업 이름 정하기
  2. 실행할 노트북 선택
  3. 주기 설정 (매일, 매주 등)
  4. 실패 시 알림 설정

데이터 정제 및 저장이 자동화되는 배치 작업이 되는 셈이다.
이걸 통해 운영 환경에서도 ETL이 매일 돌아가는 구조를 만들 수 있음.

728x90
반응형