¿Existe una consulta en Snowflake para identificar los caracteres de un archivo que no son válidos? Utf8 [duplicado]

Aug 19 2020

Tengo un archivo que cuando se carga en Snowflake obtiene un error por caracteres UTF-8 no válidos, logré cargarlo en una tabla usando otra codificación, creando un formato de archivo con opción, ENCODING = 'iso-8859-1'pero me gustaría encontrar una manera de obtenerlos. personajes consultados.

Probé la TO_BINARY(col,'UTF-8')función con la esperanza de que falle en la columna que tiene UTF-8 no válido pero no pude obtener un resultado válido para capturar esos caracteres, ¿alguien se ha enfrentado al mismo problema?

Respuestas

1 DarrenGardner Aug 20 2020 at 02:33

Tenga en cuenta que TODOS los datos de caracteres dentro de Snowflake están codificados mediante UTF-8 . No hay otra opción. Hace un tiempo, esto no era estrictamente cierto, y era posible tener datos de personajes en Snowflake que NO eran UTF-8 válido. Pero eso no debería ser posible ahora.

Al especificar la ENCODING = 'iso-8859-1'opción, Snowflake (durante la operación COPY INTO) debía realizar la traducción del juego de caracteres en el archivo (que luego se interpretó como codificado en ISO-8859-1), mapeando todos los caracteres en su equivalente UTF-8 tal como se escribió en Copo de nieve. Como resultado, todos los datos en Snowflake están codificados en UTF-8 y, por lo tanto, no debe haber NINGÚN carácter que no sea UTF-8 para descubrir. Dicho esto, es posible que el resultado de la traducción del juego de caracteres no termine traduciéndose a los caracteres UTF-8 correctos / esperados si el archivo subyacente (fuente) no se codificó realmente con la codificación que especificó durante el COPY INTO (en este caso, ISO -8859-1).

Dado esto, ¿cuál es el problema final que está tratando de resolver aquí? ¿Cargó un archivo de origen ENCODING = 'iso-8859-1'que no era en realidad ISO-8859-1? ¿O está diciendo que el archivo de origen FUE realmente codificado como ISO-8859-1 y, sin embargo, de alguna manera los caracteres resultantes en Snowflake son (1) incorrectos o (2) UTF-8 no válidos? ¿O está tratando de determinar la codificación real de un archivo de origen (ignorando todo el aspecto ISO-8859-1 por completo)?

Monem_منعم Aug 19 2020 at 19:08

Respuesta detallada encontrada aquí ¿Cómo encontrar filas con caracteres que no sean utf8 en Snowflake?

Debería marcar mi pregunta como duplicada y consultar el enlace, por favor.