챕터별 상세
00:00
인트로 및 프로젝트 배경
Databricks의 유료 기능을 오픈소스만으로 재현하기 위해 'Lakehouse at Home' 프로젝트를 시작했다. 상용 플랫폼의 편리함 대신 오픈소스의 유연성과 비용 효율성을 극대화하는 것이 목표이다. Databricks의 오픈소스 옹호자인 Lisa Cao가 참여하여 전체 아키텍처 설계를 돕는다.
00:54
로컬 환경 설정 및 객체 스토리지 구축
Ubuntu 환경에서 Docker와 Vim을 사용하여 기본 인프라를 설정했다. S3 호환 객체 스토리지로 SeaweedFS를 선택하여 로컬 머신에 데이터 저장소를 구축했다. SeaweedFS는 가볍고 빠르며 S3 API를 지원하여 클라우드 환경과 동일한 개발 경험을 제공한다.
10:51
레이크하우스 기본 아키텍처 설계
스토리지(SeaweedFS), 테이블 포맷(Delta Lake, Iceberg), 실행 엔진(Spark, Trino, Flink)으로 이어지는 3계층 구조를 설계했다. 각 계층은 독립적으로 확장 가능하며 오픈소스 표준 프로토콜을 통해 서로 연결된다. 로컬 환경의 제약을 고려하여 16GB RAM에서도 구동 가능한 최적화된 구성을 적용했다.
16:09
데이터 카탈로그와 거버넌스 구현
여러 엔진이 동일한 데이터를 안전하게 공유하기 위해 Unity Catalog OSS를 도입했다. 카탈로그는 데이터 권한 관리(Governance)와 자격 증명 전달(Credential Vending) 기능을 수행하여 보안 사고를 방지한다. Polaris나 Gravitino 같은 대안 카탈로그와의 차이점을 분석하고 통합 메타데이터 관리의 중요성을 확인했다.
23:06
Spark 4.1 설정 및 엔진 연동
Spark의 `spark-defaults.conf` 파일을 수정하여 Iceberg REST 카탈로그와 S3 스토리지를 연동했다. 필요한 JAR 파일들을 로드하고 카탈로그 URI와 웨어하우스 경로를 명시적으로 설정했다. 이 과정에서 발생하는 라이브러리 버전 충돌 문제를 '글루 코드(Glue Code)' JAR 파일을 통해 해결했다.
bash
spark.sql.catalog.unity=org.apache.iceberg.spark.SparkCatalog
spark.sql.catalog.unity.type=rest
spark.sql.catalog.unity.uri=http://localhost:8081/api/2.1/unity-catalog
spark.sql.catalog.unity.warehouse=s3://lakehouse/warehouse/Spark에서 Unity Catalog OSS를 REST 카탈로그로 설정하는 예시
25:19
Spark Connect를 통한 클러스터 확장성 확보
Spark 4.1의 Spark Connect 기능을 사용하여 클라이언트와 서버를 분리했다. 사용자는 로컬 Jupyter Notebook에서 가벼운 클라이언트만으로 원격 Spark 클러스터에 접속하여 쿼리를 실행할 수 있다. 이는 드라이버 프로세스의 부하를 줄이고 다수의 사용자가 동시에 클러스터를 공유하는 환경에 적합하다.
30:54
Spark Declarative Pipelines (SDP) 실습
YAML 파일에 파이프라인을 정의하고 실행하는 SDP 기능을 시연했다. Bronze에서 Silver, Gold 계층으로 데이터가 흐르는 과정을 코딩 없이 선언적으로 구현했다. `dry-run` 명령어를 통해 실제 데이터를 처리하기 전에 파이프라인의 논리적 구조와 의존성을 미리 검증했다.
yaml
name: overarchitected_demo
libraries:
- glob: sdp_demo.py
storage: iceberg
databases: bronze
catalog: unity
configuration:
spark.sql.shuffle.partitions: "8"Spark Declarative Pipelines(SDP)를 정의하는 YAML 설정 파일 예시
37:19
운영 환경 확장을 위한 고려 사항
로컬 구축을 넘어 실제 운영 환경으로 확장하기 위해 Kubernetes와 Airflow의 필요성을 논의했다. 컨테이너 오케스트레이션을 통해 가용성을 확보하고 Airflow로 복잡한 작업 흐름을 관리해야 한다. 중앙 집중식 로깅 시스템을 추가하여 여러 컨테이너에서 발생하는 에러를 추적하는 체계를 갖췄다.
용어 해설
- 레이크하우스(Lakehouse)
- — 데이터 레이크의 유연한 저장 능력과 데이터 웨어하우스의 구조화된 관리 기능을 결합한 아키텍처이다. 저렴한 객체 스토리지 위에 트랜잭션 지원 및 스키마 관리를 가능하게 하여 데이터 엔지니어링과 AI 학습을 단일 플랫폼에서 수행하게 한다.
- 테이블 포맷(Table Format)
- — 객체 스토리지에 저장된 수많은 데이터 파일을 하나의 논리적인 테이블로 인식하게 만드는 메타데이터 계층이다. Delta Lake나 Apache Iceberg가 대표적이며, ACID 트랜잭션, 타임 트래블, 스키마 진화 등의 기능을 제공한다.
- 카탈로그(Catalog)
- — 여러 데이터 소스와 테이블에 대한 메타데이터를 중앙에서 관리하고 접근 권한을 제어하는 시스템이다. 데이터 거버넌스의 핵심 요소로, 어떤 사용자가 어떤 데이터에 접근할 수 있는지 정의하고 자격 증명을 안전하게 관리한다.
- 스파크 커넥트(Spark Connect)
- — Spark 드라이버와 클라이언트를 분리하여 gRPC 프로토콜로 통신하게 하는 아키텍처이다. 클라이언트에 무거운 Spark 라이브러리를 설치할 필요 없이 가벼운 라이브러리만으로 원격 클러스터에 작업을 제출할 수 있어 확장성이 뛰어나다.
- 스파크 선언적 파이프라인(Spark Declarative Pipelines)
- — 복잡한 코딩 대신 YAML 설정을 통해 데이터 파이프라인을 정의하는 Spark의 새로운 기능이다. 파이프라인의 의존성 관계를 시각화하고 실제 실행 전 논리적 오류를 검증하는 드라이런(Dry-run) 기능을 지원한다.
언급된 리소스
AI 분석 전체 내용 보기
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
원문 발행 2026. 04. 01.수집 2026. 04. 01.출처 타입 YOUTUBE
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.