프로젝트 소개
delta-explain은 Delta Lake 프루닝 과정을 가시화하는 읽기 전용 진단 도구입니다. Delta 테이블의 트랜잭션 로그(또는 클라우드 저장 위치)를 파싱해, 사용자가 제공한 SQL 스타일 술어에 대해 파티션 프루닝과 컬럼 통계가 후보 파일 집합을 어떻게 좁히는지 보여줍니다.
셸(`delta-explain ./my-table --where "age > 40 AND country = 'DE'"`), Python(`from delta_explain import explain; report = explain(...)`), CI 게이트(`--min-pruning 90 --assert-stats`)로 실행할 수 있습니다. 이 도구는 Parquet 데이터 파일을 직접 접근하지 않고 로그만 조회하기 때문에 표면적이 작고 보증된 기능만 제공합니다.
설치 옵션으로 Homebrew, PyPI, Cargo, Docker, 미리 빌드된 바이너리를 지원합니다. 로컬 경로와 S3, Azure, GCS 등 클라우드 URI를 지원하며, 각 클라우드 제공자별 인증 처리 기능을 갖추고 있습니다. 리포팅은 버전이 관리되는 JSON 계약으로 제공되며, 별도의 HTML 뷰어로 프루닝 퍼널, 파일별 상세 정보, 진단 정보를 확인할 수 있습니다.
성능은 데이터 양이 아니라 로그 항목 수에 따라 확장됩니다. 20만 개 파일 기준으로 약 1~2초가 소요되며 약 300MB의 RAM을 사용합니다. 스키마가 넓거나 파일이 많으면 메모리가 선형적으로 증가하며, `--limit` 옵션으로 출력 크기를 제한할 수 있습니다. 이 프로젝트는 CI 게이트용 GitHub Action으로도 사용할 수 있으며, 프루닝 비율과 파일 수를 스텝 출력으로 노출합니다.
주요 기능은 다음과 같습니다:
* 단계별 프루닝 시각화 (파티션 프루닝 후 통계 기반 프루닝)
* 상세 파일별 목록 출력 (파일 보존/제외 사유, 크기, 통계 범위)
* 임계값 기반 CI 게이트 (`--min-pruning`, `--assert-stats`)
* JSON 스키마 검증 리포팅 및 HTML 뷰어
* 크로스 플랫폼 바이너리 (Linux, macOS, Windows) 및 Docker 이미지 지원
* 전체 문서, 예제, 설계 심층 분석 문서 제공
이 도구는 delta-kernel-rs 기반으로 구축되었으며, 완전한 읽기 전용이고 MIT 라이선스로 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.