对外部文件使用更强的 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 继续执行。

查询外部表时,对于包含无效 UTF-8 数据的记录,Snowflake 会省略其查询结果。遇到无效数据后,Snowflake 会继续扫描文件(与 ON_ERROR = CONTINUE 相似),而不会返回错误消息。

为了避免 UTF-8 验证错误,Snowflake 建议为文件格式指定 REPLACE_INVALID_CHARACTERS = TRUE,以便将任何无效的 UTF-8 字符替换为 Unicode 替代字符 ()。

对于 Parquet 文件,还可以为文件格式设置 BINARY_AS_TEXT = FALSE,以便将具有未定义的逻辑数据类型的列解释为二进制数据而不是 UTF-8 文本。

请注意,此行为变更不适用于当前正加载无效 UTF8 的现有账户。它仅影响新账户。如有任何问题,请联系 Snowflake 支持部门

参考:1013 1014

语言: 中文