원문 캡처 · github.com
원문 캡처 · github.com

Brownfield Cartographer는 Python, SQL, dbt와 Airflow에 걸친 데이터 의존성을 정적으로 분석해 파일·줄 단위 근거와 함께 보여주는 도구다. 저장소 코드를 실행하거나 네트워크·API 키를 사용하지 않고, CLI와 Python API, 읽기 전용 MCP 서버로 결과를 조회할 수 있다.

Python 3.12 이상과 Git이 필요하다. uv 또는 pipx로 설치할 수 있으며, uv가 있다면 dbt 공개 예제 프로젝트를 내려받아 분석하는 방법도 안내한다.

text
git clone --depth 1 https://github.com/dbt-labs/jaffle_shop && cd jaffle_shop
uvx --from brownfield-cartographer cartographer analyze .
uvx --from brownfield-cartographer cartographer impact models/staging/stg_payments.sql

이 도구는 결과에 분석 범위와 진단 정보를 함께 기록한다. 지원하지 않거나 모호한 경우를 추측하지 않고 미해결 항목으로 표시한다. impact는 잠재적 하위 의존성을 찾는 기능이지, 모든 사용처가 반드시 영향을 받는다는 보장은 아니다. 부분 분석 결과를 활용할 때는 저장된 범위와 진단 내용을 확인해야 한다.

지원 범위에는 SQL 문과 테이블 의존성, dbt 모델·시드·스냅샷·소스, 일부 컬럼 계보, Airflow 작업 간 순서와 실행 대상이 포함된다. SQL의 동적 테이블명이나 일부 Jinja 사용, 계산된 Airflow 작업 ID 등은 분석이 제한될 수 있다. 큰 파일이나 지원하지 않는 파일도 완전히 분석된 것으로 처리하지 않는다. 변경된 작업 트리는 현재 전체 재분석하며, 성공적으로 분석한 뒤 변하지 않은 스냅샷은 기존 인덱스를 재사용할 수 있다.

Claude Code 플러그인과 Codex·Cursor 등 MCP 호스트 연결 방법, 지원 범위와 알려진 공백은 GitHub 저장소와 MCP 설정 안내에서 확인할 수 있다. dbt 매니페스트 지원 조건은 dbt artifact 안내에, 정확도 벤치마크와 알려진 공백은 벤치마크 문서에 정리돼 있다.