Project
NWP 기상데이터 백업 및 품질관리 파이프라인
Overview
HDFS 적재 기상데이터의 결측을 자동 검출·보정하는 파이프라인과 검증 API를 설계·운영하여 데이터 신뢰성을 정량적으로 보장한 프로젝트.
Key Results
데이터 완결률
99.99%
운영 기간
21개월
결측 건수
1건 / 125,272건
Spark executor
10개
Architecture
데이터 흐름HDFS
Parquet (실시간 적재)
Validator API
Django REST
Airflow DAG
매일 02:00
Spark 클러스터
10 executor × 8GB
HDFS
Parquet 재적재
실시간 Kafka ETL 파이프라인과 병행 운영되는 이중 안전망 구조. Validator API가 전일 HDFS 데이터를 검증하고, 결측이 감지되면 Spark 클러스터가 자동으로 보정·재적재합니다.
Technical Decisions
문제를 어떻게 정의하고, 왜 이 방법을 선택했는지
검증 로직을 공용 API 서버로 분리
결측 검증 로직이 여러 Airflow DAG에 분산되면 중복 코드가 쌓이고 일관성을 유지하기 어렵습니다. 또한 특정 날짜의 데이터 가용성을 여러 워크플로에서 조회해야 하는 요구사항이 있었습니다.
Django REST Framework 기반 데이터 검증 API 서버를 별도로 구축하고 3개 엔드포인트로 통합. 21개 ORM 모델, 531개 필드를 중앙 관리하며 일/월/연 단위 granularity를 지원합니다.
검증 로직 단일화 및 재사용. 여러 파이프라인이 API 호출로 일관된 결과를 얻을 수 있게 됨.
Kafka ETL과 병행하는 이중 안전망 설계
실시간 ETL만으로는 FTP 지연, 네트워크 순단 등 일시적 장애로 인한 결측을 사후에 보완하기 어렵습니다. ML 모델 학습에는 시간 연속성이 보장된 완전한 데이터가 필수였고, 기존에는 결측 발생 시 ML 엔지니어가 수동으로 재수집을 요청해야 했습니다.
매일 02:00 Airflow DAG가 전일 HDFS 데이터를 자동 검증하고, 결측 발견 시 Spark 클러스터가 자동으로 보정 후 Parquet 재적재합니다. 실시간 ETL(1차)과 배치 backfill(2차)이 서로를 보완하는 구조입니다.
21개월간 HDFS 완결률 99.99% (125,272건 중 결측 1건). ML 엔지니어 수동 요청 프로세스 완전 제거.
Tech Stack