피드로 돌아가기
Taming the Chaos: Cleaning 10M+ Apple Health Records into a Production-Ready Parquet Lakehouse
Dev.toDev.to
Database

Polars와 Parquet 기반 10M+ Apple Health 데이터 Lakehouse 구축

Taming the Chaos: Cleaning 10M+ Apple Health Records into a Production-Ready Parquet Lakehouse

Beck_Moulton2026년 5월 2일5intermediate

Context

멀티 기기 중복 데이터와 불규칙한 샘플링 주기를 가진 대규모 XML 데이터 처리의 어려움 직면. 기존 Pandas 기반 처리 방식으로는 1,000만 건 이상의 레코드 처리 시 RAM 부족 및 CPU 병목 현상 발생.

Technical Solution

  • Apache Hop 도입을 통한 XML-to-S3 Ingestion 과정의 가시성 확보 및 장애 복구 지점 설정
  • Polars의 Lazy Loading 및 Multi-threaded Query Engine을 활용한 메모리 효율적 데이터 정제
  • Device Prioritization 전략을 통한 Apple Watch-iPhone 간 중복 데이터 제거 및 무결성 확보
  • Z-Score 및 임계값 필터링을 통한 생체 데이터 Outlier 제거로 데이터 품질 최적화
  • Upsampling 및 Linear Interpolation 기반의 Event-driven 데이터를 고정 주기 Grid 데이터로 변환
  • Year/Month/Type 기준의 Partitioned Parquet 저장 구조 설계를 통한 쿼리 성능 최적화

1. 대규모 정형/반정형 데이터 처리 시 Pandas 대신 Polars의 Lazy API 검토

2. 멀티 소스 데이터 수집 시 우선순위 기반의 De-duplication 로직 설계

3. AI 모델 입력용 시계열 데이터 구성 시 Upsampling 및 Interpolation 전략 수립

4. S3 저장 시 쿼리 패턴에 최적화된 Partitioning Column 선정

원문 읽기