같은 Iceberg 테이블을 Spark와 Impala로 읽을 때 값이 다른 증상이 나타난다.
TSB-797·CDPD-74697에 해당하는 dictionary-encoded decimal 오독 문제에 대한 우회 방법이다.
Spark 작업에 --conf spark.sql.iceberg.vectorization.enabled=false를 설정하거나 테이블 속성 read.parquet.vectorization.enabled=false로 벡터화를 끈다. 수정 버전인 CDP 7.3.1 적용을 검토한다.
명령 예시는 문서 작성 시 보강한 것이며 대상 시스템에서 실행 검증하지 않았다.
spark-submit --conf spark.sql.iceberg.vectorization.enabled=false '<application.py>'
ALTER TABLE <catalog>.<db>.<table>
SET TBLPROPERTIES ('read.parquet.vectorization.enabled'='false');
decimal 컬럼의 실제 값이 엔진 간 일치하는지 확인한다. 성능 감소 여부도 측정한다.