LabHub

고객 데이터 다루기 · 정제와 검증 · 실습

재사용 가능한 검증기 만들기

LabHub 에서 이어서 보기

목표

한 번 쓰고 버리는 정제 스크립트가 아니라, 매주 도착하는 파일을 자동으로 판정하는 검증기를 만들 수 있게 됩니다.

왜 중요한가

검증기의 진짜 시험은 깨진 파일이 아니라 정상 파일입니다. 규칙이 너무 빡빡해서 멀쩡한 파일도 실패시키면, 사람이 매주 "또 그거겠지" 하며 무시하기 시작하고, 두 달 뒤 진짜 문제가 왔을 때도 똑같이 무시합니다. 그 시점에는 검증기가 있는 것이 없는 것보다 나쁩니다 — 있다고 믿게 만들면서 실제로는 아무것도 막지 못하기 때문입니다.

그래서 검증기는 항상 두 방향으로 시험합니다. 정상 파일에 통과하는가, 깨진 파일에 실패하는가. 그리고 결과는 종료 코드로 말해야 합니다. 통과면 0, 실패면 0 이 아닌 값. 그래야 배치 파이프라인에 그대로 꽂힙니다.

/opt/data/validate/ 에 네 개의 파일이 있습니다. 세 개는 서로 다른 방식으로 깨져 있고 하나는 멀쩡합니다. 모든 파일의 헤더는 id,customer,amount,region,date 입니다.

규칙 세 가지

단계

1. /root/validate 디렉터리를 만드세요.
2. bad_schema.csv 의 형식 위반 행 수를 /root/validate/schema_bad.txt 에 적으세요.
3. bad_dupe.csv 에서 중복으로 버려야 할 행 수를 /root/validate/dupe_rows.txt 에 적으세요.
4. bad_range.csv 의 범위 위반 행 수를 /root/validate/range_bad.txt 에 적으세요.
5. good.csv 의 위반 행 수를 /root/validate/good_bad.txt 에 적으세요.
6. 네 값의 합을 /root/validate/total_bad.txt 에 적으세요.
7. /root/validate/validate.sh 를 만드세요. 첫 번째 인자로 CSV 경로를 받고, 위반이 하나도 없으면 종료 코드 0, 하나라도 있으면 0 이 아닌 코드로 끝나야 합니다.
8. /root/validate/report.md 에 네 파일의 이름과 각각의 위반 건수, 그리고 총합을 적으세요.

참고

단계 8개

  1. 작업 디렉터리 만들기
  2. 형식 위반 행 세기
  3. 중복 행 세기
  4. 범위 위반 행 세기
  5. 정상 파일 확인하기
  6. 전체 위반 합계 내기
  7. 검증 스크립트 만들기
  8. 검증 리포트 쓰기