Snowflake验证模式下加载Parquet文件能否无需MATCH_BY_COLUMN_NAME?
在Snowflake VALIDATION_MODE下加载Parquet文件(不使用MATCH_BY_COLUMN_NAME)
可以。
报错的核心原因是:VALIDATION_MODE不支持任何包含数据转换逻辑的COPY操作,而MATCH_BY_COLUMN_NAME = CASE_INSENSITIVE属于列映射类的转换设置,因此两者无法同时使用。
如果你的Parquet文件列顺序与目标表db.schema.ZDATA_4完全一致,或者你接受按列位置匹配的默认规则,那么只需移除MATCH_BY_COLUMN_NAME参数,即可正常使用VALIDATION_MODE验证Parquet文件的加载可行性。
修正后的命令示例:
copy into db.schema.ZDATA_4 from @stage/load/zdata_4/ file_format=(TYPE=parquet) ON_ERROR=CONTINUE Force=TRUE validation_mode = return_all_errors;
注意:如果Parquet文件的列顺序与目标表不一致,且必须依赖列名匹配来确保映射正确,那么无法在VALIDATION_MODE下完成验证。这种情况建议先移除VALIDATION_MODE,使用MATCH_BY_COLUMN_NAME进行实际加载测试,或者手动确认列映射关系后,再用按位置匹配的方式运行VALIDATION_MODE。
内容的提问来源于stack exchange,提问作者Sudhanshu Prakash
相关产品推荐
相关产品推荐

