对外部文件使用更强的 UTF-8 验证¶
此行为变更已通过 7.34 版本实施。有关行为变更的最新详细信息,请参阅 行为变更日志。
Snowflake 对外部文件使用更强的 UTF-8 验证。
- 变更前:
当您查询包含无效 UTF-8 数据的外部 Avro、Parquet、Orc、CSV、JSON 或 XML 文件时,查询通常会成功。
- 变更后:
当您查询包含无效 UTF-8 数据的外部 Avro、Parquet、Orc、CSV、JSON 或 XML 文件时,查询会失败。
如果利用 COPY INTO <table> 或者 Snowpipe 加载包含无效 UTF-8 数据的外部文件,Snowflake 会使用复制选项
ON_ERROR = CONTINUE
继续执行。Snowflake 会将包含无效 UTF-8 数据的记录视为错误,并继续加载文件。
为了避免 UTF-8 验证错误,Snowflake 建议为文件格式指定 REPLACE_INVALID_CHARACTERS = TRUE
,以便将任何无效的 UTF-8 字符替换为 Unicode 替代字符 (�
)。
对于 Parquet 文件,还可以为文件格式设置 BINARY_AS_TEXT = FALSE
,以便将具有未定义的逻辑数据类型的列解释为二进制数据而不是 UTF-8 文本。
请注意,此行为变更不适用于当前正加载无效 UTF8 的现有账户。它仅影响新账户。如有任何问题,请联系 Snowflake 支持部门 (https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge)。
参考:1013 1014