Avro GenericData$Fixed를 Float 또는 BigDecimal로 cast하지 못해 RDBMS export가 실패한다.
원본은 schema 추가 자료 요청 후 확정 해법 없이 종료됐다. text staging은 binary logical type 변환 경로를 회피하는 추가 해법이며 범용 무손실 변환을 보장하지 않는다.
원본 schema와 목표 타입을 대조하고 숫자 컬럼을 명시적으로 text staging으로 변환한 뒤 export해 Parquet 변환 경로를 우회한다.
확인 수준: 추가 조사 해법 · 해당 케이스 적용 결과 미확인
적용 조건: <...>와 예시 DB·테이블·경로·수치는 실제 확인값으로 바꾼다. 명령과 메뉴는 참고 문서를 바탕으로 보강한 예시이며 대상 시스템에서 실행하지 않았다. 버전·원인에 따른 분기와 남은 확인 사항은 아래에 명시한다.
INSERT OVERWRITE DIRECTORY 'hdfs:///test/sqoop_numeric_export'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
SELECT CAST(id AS STRING),
COALESCE(CAST(amount AS STRING), 'NULL_VALUE')
FROM db.source_table;
sqoop export --connect '<jdbc-url>' --username '<db-user>' -P \
--table '<empty-rdbms-staging-table>' --columns 'id,amount' \
--export-dir 'hdfs:///test/sqoop_numeric_export' \
--input-fields-terminated-by '\t' \
--input-null-string 'NULL_VALUE' --input-null-non-string 'NULL_VALUE' -m 1
행 수·키 중복·NULL 수와 decimal 합계가 일치하고 export mapper 형변환 오류가 없는지 확인한다.