Devin.KR

품질 검사와 수치 추적

잘못된 데이터가 보고서로 전달되는 경로를 차단합니다.

진도 0%

레슨

  1. 결측률·중복·범위 검사

    JSON 행 목록의 결측률·중복 키·음수 통행량을 검사하고 오류 코드를 출력합니다.

  2. 품질 기준과 공개 차단

    m08 적재 전에 품질 임계값을 검사하고 실패 배치와 마지막 정상 결과를 분리합니다.

  3. 수치 불일치 추적

    기간·시간대·필터·조인·집계 단계별 건수를 SQL로 비교하여 보고서 차이의 원인을 찾습니다.

  4. 권한과 복구 안내

    출력의 개인 정보 노출을 점검하고 실패 배치 복구·재실행·결과 정정 절차를 작성합니다.

품질 검사와 수치 추적 결과물 통합

m08-idempotent-load의 solution 전체를 이어받습니다. 기존 경로와 테스트를 보존하고 quality.run에 원본 보존·정제 전 품질 검사·증분 병합·마지막 정상 report.json 공개·시도별 계보를 추가합니다.

요구사항

  • m08에 품질 게이트와 단계별 lineage.json을 추가합니다.
  • 결측률 임계값은 표본과 분석 목적의 근거로 정하고 실패한 결과는 공개하지 않습니다.
  • 기간·시간대·필터·조인·집계 추적과 정보 최소화 체크리스트를 공유합니다.
  • 새 공개 명령은 python3 -m quality.run입니다. 기존 run.sh는 기존 증분 경로로 남습니다.
  • 보고서는 커밋된 전체 DB의 통행량·강수량 모두 있는 행을 비교합니다. 입력 배치 결측 기준 0.2·0.4 초과 차단의 표본 근거와 scope를 적습니다.
  • 성공 보고서에는 해당 시도의 lineage를 포함하고 lineage.json은 최신 시도, quality-audit.json은 시도 이력으로 구분합니다. DB와 파일 간 원자성·동시 실행·개정본 순서의 한계를 적습니다.

완료 기준

  • 높은 결측률·중복 키·음수 값 fixture는 각각 지정 오류 코드로 실패합니다.
  • 실패 배치 뒤에도 마지막 정상 보고서의 해시가 유지되고 정상 배치 재실행으로 회복됩니다.
  • 전체 108개 검사 중 선택 HTTP 9개 skip, 나머지 통과. 새 품질 테스트 11개이며 starter는 중복·결측·해시 보존 흐름의 3개가 실패합니다.
  • fixtures/quality-missing.csv, quality-duplicate.csv, quality-negative.csv는 TRAFFIC_MISSING, DUPLICATE_KEY, NEGATIVE_TRAFFIC으로 각각 차단됩니다.
  • 초기 공개는 4행·합계 300, correction.csv 적용 공개는 합계 305입니다. 롤백과 커밋 후 공개 오류 후 재처리를 구분합니다.
python3 -m unittest discover -s tests -v
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 판단 근거와 제외 조건을 데이터와 연결해 설명합니다.
  • 앞 단계 산출물을 재사용하고 원본을 보존합니다.