← 포트폴리오로 돌아가기

NWP 기상데이터 백업 및 품질관리 파이프라인

2024.07 ~ 현재·개발 / 운영·한국전자기술연구원 (KETI)

HDFS 적재 기상데이터의 결측을 자동 검출·보정하는 파이프라인과 검증 API를 설계·운영하여 데이터 신뢰성을 정량적으로 보장한 프로젝트.

데이터 완결률

99.99%

운영 기간

21개월

결측 건수

1건 / 125,272건

Spark executor

10개


데이터 흐름

HDFS

Parquet (실시간 적재)

Validator API

Django REST

Airflow DAG

매일 02:00

Spark 클러스터

10 executor × 8GB

HDFS

Parquet 재적재

실시간 Kafka ETL 파이프라인과 병행 운영되는 이중 안전망 구조. Validator API가 전일 HDFS 데이터를 검증하고, 결측이 감지되면 Spark 클러스터가 자동으로 보정·재적재합니다.

문제를 어떻게 정의하고, 왜 이 방법을 선택했는지

검증 로직을 공용 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 엔지니어 수동 요청 프로세스 완전 제거.


Apache AirflowApache SparkHDFSDjango REST FrameworkDockerMySQLPyWebHDFS

← 포트폴리오로 돌아가기