VARCHAR(n) 변환·적재 시 길이를 초과한 문자열이 조용히 잘린다.
Hive VARCHAR의 조용한 잘림은 문서화된 동작이다. 원본의 최종 조치는 명시되지 않아 사전 검증 절차를 추가한 것이며 DB 제약조건만으로 예외가 난다고 주장하지 않는다.
원본을 STRING staging에 보존하고 적재 전에 길이를 검증해 배치를 실패시키거나 초과 행을 별도로 격리한다.
확인 수준: 추가 조사 해법 · 해당 케이스 적용 결과 미확인
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
SELECT id, char_length(payload) AS actual_length
FROM db.immutable_stage
WHERE char_length(payload) > 20;
SELECT assert_true(COUNT(*) = 0)
FROM db.immutable_stage
WHERE char_length(payload) > 20;
--force=false로 오류 이후 문장을 계속 실행하지 않게 한다.beeline --force=false -u '<jdbc-url>' -f validate_then_load.sql
payload IS NULL 검사로 별도 추가한다. 사용 버전에 char_length가 없다면 UTF-8 문자 수를 보존하는 지원 함수로 검증한다.20자·21자·한글·NULL 샘플에서 정책대로 통과·실패하며 길이 초과 배치가 운영 table을 변경하지 않는지 확인한다.