피드로 돌아가기
Dev.toBackend
원문 읽기
Asset-Based Data Orchestration: Lessons from Building a Multi-State Social Data Platform
다중 주(State) 사회서비스 데이터 플랫폼이 파이프라인 중심에서 자산(Asset) 기반 오케스트레이션으로 전환해 부분 장애를 격리·추적·설명 가능하도록 구조화
AI 요약
Context
다수의 독립적 조직에서 제공하는 이질적인 데이터 소스(iCarol, WellSky, VisionLink, RTM 등)를 수집하는 과정에서 스키마 불일치, 비일관적인 업데이트 주기, 불명확한 소유권으로 인해 신뢰성이 개별 파이프라인 최적화로는 해결되지 않음을 발견했다. 파이프라인 중심 사고는 중간 데이터셋의 내구성과 재사용 가능성을 모호하게 만들었고, 공유 실행 경로에서 한 테넌트의 실패가 관계없는 다른 테넌트의 수행을 지연시키는 결합도 문제가 발생했다.
Technical Solution
- 자산 기반 오케스트레이션 도입: Dagster를 사용해 파이프라인이 아닌 데이터 자산(테이블, 데이터셋, 모델)을 일차 오케스트레이션 단위로 변경하고 자산 간 의존성을 명시적으로 정의
- 정규화 계약의 아키텍처화: HSDS 기반 정규화를 선택적 후처리 단계에서 모든 다운스트림 소비자가 의존하는 아키텍처 계약으로 승격하고, 정규화 불가능한 요구사항은 명시적으로 거부
- ELT 기반 계층화 변환: 원본 소스 데이터를 Snowflake 소스 스키마에 그대로 저장하고, DBT ELT 프로젝트로 정규화한 뒤, DBT STAGE 프로젝트에서 테넌트 특화 적응을 적용해 계약 준수 여부 판단 지점을 명확화
- 자동 데이터 품질 검증: 수동 검증을 오케스트레이션 계층 내부로 이동시켜 동시성 및 시간 압박 환경에서 신뢰성 보장
- 격리된 실행 경로: 테넌트별 독립적인 쓰기 프로젝트를 구성해 한 테넌트의 장애가 다른 테넌트에 영향을 주지 않도록 분리
Key Takeaway
다양한 데이터 소스를 다루는 대규모 데이터 플랫폼에서는 신뢰성이 개별 컴포넌트가 아닌 데이터 자산과 그들의 관계라는 시스템 수준의 특성이며, 파이프라인 중심에서 자산 기반 오케스트레이션으로 전환하면 부분 장애를 격리하고 의존성을 명시적으로 추적할 수 있다.
실천 포인트
다중 테넌트 또는 이질적 데이터 소스를 다루는 데이터 플랫폼 팀에서 Dagster 같은 자산 기반 오케스트레이터를 도입하고, 정규화 요구사항을 아키텍처 계약으로 문서화한 뒤, ELT 계층화 구조로 변환 로직을 분리하면, 어느 규정 위반이 발생했는지 파악하기 위해 인프라 전체를 재실행하는 대신 영향받은 자산만 재계산하고 근본 원인을 추적할 수 있다.