피드로 돌아가기
Dev.toDatabase
원문 읽기
Polars와 Parquet 기반 10M+ Apple Health 데이터 Lakehouse 구축
Taming the Chaos: Cleaning 10M+ Apple Health Records into a Production-Ready Parquet Lakehouse
AI 요약
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 선정