Основные понятия
스파크 없이 DuckDB, Polars, Delta-rs를 사용하여 서버리스 레이크하우스를 구축하면 비용 효율적이고 빠르며 확장 가능한 데이터 분석 환경을 구현할 수 있다.
이 글에서는 스파크 없이 DuckDB, Polars, Delta-rs를 사용하여 서버리스 레이크하우스를 구축하는 방법을 소개하고 있습니다. 저자는 기존 데이터 프로젝트에서 스파크와 같은 도구가 무겁고 비용이 많이 들며 복잡한 인프라를 요구한다는 점을 지적하며, 특히 중소 규모의 데이터 (최대 10GB)를 처리하는 경우 더욱 효율적인 대안이 필요하다고 주장합니다.
서버리스 레이크하우스 아키텍처의 이점
인프라 관리 불필요: 클러스터 관리가 필요 없어 데이터 가치 창출에 집중할 수 있습니다.
빠른 결과 도출: DuckDB 및 Polars와 같은 최신 기술을 통해 스파크와 동일한 효율성과 속도를 달성하여 비용 효율적인 방식으로 복잡한 분석을 수행할 수 있습니다.
비용 절감 및 확장성: 사용량 기반 과금으로 스파크 클러스터 예열 없이 비용을 절감하고 확장성을 확보할 수 있습니다.
아키텍처 구성 요소
DuckDB: 경량 임베디드 분석 데이터베이스로, 복잡한 클러스터 없이 로컬에서 대량의 데이터를 처리하는 데 이상적입니다.
Polars: Rust로 작성된 매우 빠른 데이터 처리 라이브러리로, 대규모 인메모리 데이터 세트를 효율적으로 처리하도록 설계되었습니다.
Delta-rs: 데이터 레이크를 위한 스토리지 계층으로, ACID 작업 및 데이터 버전 관리를 통해 대량 데이터의 일관성과 무결성을 보장합니다.
아키텍처 및 구현
메달리온 아키텍처를 사용하여 브론즈, 실버, 골드 레이어로 분리합니다.
CDK를 IaC 라이브러리로 사용하여 아키텍처를 클라우드에 배포합니다.
데이터 수집 및 쿼리를 위한 두 개의 엔드포인트가 생성됩니다.
데이터 수집 엔드포인트는 YAML에 정의된 테이블에 데이터를 삽입하고, Firehose를 사용하여 여러 레코드를 한 번에 처리합니다.
데이터는 브론즈 레이어로 전송된 후 Lambda 함수를 통해 Delta 테이블 생성, 스키마 진화, Polars 및 Delta-rs를 사용한 데이터 추가/업데이트가 수행됩니다.
골드 레이어에서는 AWS EventBridge를 사용하여 서버 관리 없이 비즈니스 규칙이 포함된 쿼리를 예약 실행합니다.
데이터 시각화를 위해 DuckDB와 통합된 Briefer를 사용합니다.
추가 개선 사항 및 단점
골드 레이어에 dbt-duckdb를 사용하고, Briefer를 ECS에 배포하여 프로덕션 환경에 맞게 아키텍처를 개선할 수 있습니다.
현재 공개 엔드포인트를 사용하고 있으며, 향후 API Gateway 또는 CloudFront와 Route 53을 사용하여 개인 엔드포인트를 생성할 예정입니다.
AI 레이어 통합을 고려할 수 있습니다.
Delta를 Athena 및 Glue Catalog와 통합하는 데 어려움이 있으며, AWS와 협력하여 해결 방안을 모색 중입니다.
결론
서버리스 레이크하우스 아키텍처는 효율적이고 빠르며 비용 효율적인 데이터 분석 환경을 제공합니다. 이 아키텍처는 시간, 예산 또는 복잡성에 대한 부담 없이 결과를 얻을 수 있도록 지원합니다.
Статистика
처리 시간: 1.5GB의 뉴욕 택시 JSON 데이터 세트를 처리하는 데 평균 18~21초 소요.
개발 비용: 무료 티어 제한에 도달하지 않아 총 개발 비용은 $0.23.