피드로 돌아가기
Trial by Fire: From Garbage Excel to Relational Graph with Python and Pandas
Dev.toDev.to
Database

Pandas ETL과 Idempotency 기반의 Legacy Excel-to-PostgreSQL 그래프 마이그레이션

Trial by Fire: From Garbage Excel to Relational Graph with Python and Pandas

Daniel2026년 4월 25일5intermediate

Context

레거시 ERP에서 추출한 BOM 데이터의 심각한 Structural Entropy로 인한 Referential Integrity 실패 발생. 비표준화된 명칭, 공백, 데이터 타입 혼재로 인해 평면 구조의 데이터를 관계형 데이터베이스로 직접 적재하는 것이 불가능한 상황.

Technical Solution

  • Pandas 기반의 전처리 레이어를 도입하여 .str.strip(), .str.upper(), .fillna()를 통한 데이터 표준화 강제
  • BOM의 계층적 Tree 구조를 구현하기 위해 단일 DataFrame을 Final Product $\rightarrow$ Subassembly $\rightarrow$ Base Component 순의 2단계 논리적 그룹 벡터로 분리 설계
  • 데이터 중복 및 그래프 엣지 오염 방지를 위해 PostgreSQL UNIQUE Key 기반의 upsert() 함수를 적용한 Ingestion Idempotency 확보
  • Supabase SDK를 통한 정밀한 CHECK 제약 조건 준수로 관계형 그래프의 무결성 보장
  • 데이터 정제 후 정형화된 노드 값을 PostgreSQL로 주입하여 AI Agentic Workflow(LangChain/CrewAI)를 위한 안정적인 데이터 기초 체계 구축

- Legacy 데이터 마이그레이션 시 원천 데이터의 Entropy를 제거할 전용 Staging Layer 설계 여부 검토 - 계층 구조 데이터 적재 시 Flat Table을 논리적 계층별 벡터로 분리하여 순차적으로 처리하는 파이프라인 구성 - 반복적인 데이터 로드 시에도 시스템 상태가 유지되도록 API level의 Idempotency(Upsert) 구현

원문 읽기