파일에서 잘못된 utf8 [duplicate] 문자를 식별하는 쿼리가 Snowflake에 있습니까?

Aug 19 2020

Snowflake에로드 할 때 잘못된 UTF-8 문자에 대한 오류가 발생하는 파일이 있는데, 옵션으로 파일 형식을 만들어 다른 인코딩을 사용하여 테이블에로드 할 수 ENCODING = 'iso-8859-1'있었지만 가져 오는 방법을 찾고 싶습니다. 문자가 쿼리되었습니다.

TO_BINARY(col,'UTF-8')유효하지 않은 UTF-8이있는 열에서 실패하기를 바라는 기능을 시도했지만 해당 문자를 캡처하는 데 유효한 결과를 얻을 수 없었습니다. 누구든지 동일한 문제에 직면 했습니까?

답변

1 DarrenGardner Aug 20 2020 at 02:33

제발주의 ALL의 눈송이 내에서 문자 데이터를 사용하여 인코딩 UTF-8 . 다른 옵션은 없습니다. 예전에는 이것이 사실이 아니었고 유효한 UTF-8이 아닌 Snowflake에 문자 데이터를 포함 할 수있었습니다. 하지만 지금은 불가능합니다.

ENCODING = 'iso-8859-1'옵션을 지정하면 Snowflake (COPY INTO 작업 중)가 파일에서 문자 집합 변환을 수행하도록 지시하고 (이후 ISO-8859-1로 인코딩 된 것으로 해석 됨) 모든 문자를 해당 UTF-8에 기록 된대로 매핑합니다. 눈송이. 그 결과, 눈송이의 모든 데이터는 UTF-8 인코딩이며, 따라서이 안 모든 비 UTF-8 발견 자. 즉, 기본 (소스) 파일이 COPY INTO 중에 지정한 인코딩 (이 경우 ISO)으로 실제로 인코딩되지 않은 경우 문자 집합 변환의 결과가 올바른 / 예상 된 UTF-8 문자로 변환되지 않을 수 있습니다. -8859-1).

이것을 감안할 때 여기서 해결하려는 궁극적 인 문제는 무엇입니까? ENCODING = 'iso-8859-1'실제로 ISO-8859-1이 아닌 소스 파일을로드 했습니까 ? 아니면 소스 파일이 있음을 말하는 WAS 눈송이의 결과 문자 (1) 잘못된 또는 (2) 무효 UTF-8 중 하나 어떻게 든 아직 진정으로 ISO-8859-1로 인코딩하고,? 아니면 소스 파일의 실제 인코딩을 결정하려고합니까 (전체 ISO-8859-1 측면을 모두 무시)?

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

자세한 답변은 여기 에서 찾을 수 있습니다. Snowflake에서 utf8이 아닌 문자가있는 행을 찾는 방법은 무엇입니까?

내 질문을 중복으로 표시하고 링크를 참조하십시오.