다음을 통해 공유


STREAMING_QUERY_EVOLUTION_ERROR 오류 조건

SQLSTATE: 42000

스트리밍 쿼리 진화 오류:

중복된_소스_이름

중복 스트리밍 원본 이름이 검색됨: <duplicateNames>. 각 스트리밍 원본에는 고유한 이름이 있어야 합니다. name() 메서드를 사용하여 모든 원본에 고유한 이름이 있는지 확인하세요.

INVALID_SINK_NAME (유효하지 않은 연결 지점 이름)

스트리밍 싱크 이름이 잘못되었습니다. ''<sinkName>. 싱크 이름에는 문자('a'-'z', 'A'-'Z'), 숫자('0'-'9') 및 밑줄('_')만 포함되어 ASCII 야 합니다.

잘못된 소스 이름 (INVALID_SOURCE_NAME)

스트리밍 원본 이름이 잘못되었습니다. ''<sourceName>. 원본 이름에는 문자('a'-'z', 'A'-'Z'), 숫자('0'-'9') 및 밑줄('_')만 포함되어 ASCII 야 합니다. 필요한 경우 백틱을 사용하여 특수 문자로 이름을 인용합니다.

명명된 소스는 강제 집행이 필요하다

spark.sql.streaming.queryEvolution.enableSourceEvolution을 사용하지 않도록 설정된 경우 name() 메서드를 사용하여 스트리밍 원본의 이름을 지정할 수 없습니다. spark.sql.streaming.queryEvolution.enableSourceEvolution을 true로 설정하여 원본 진화를 사용하도록 설정하거나 name() 호출을 제거하세요.

NAMED_SOURCES_REQUIRE_OFFSET_LOG_V2

명명된 스트리밍 원본을 적용하려면 오프셋 로그 형식 V2(OffsetMap)가 필요하지만 V<version>를 찾았습니다. V2 형식은 원본 진화를 지원하는 sourceId:offset 쌍을 사용합니다. spark.sql.streaming.offsetLog.version을 2로 설정하거나 spark.sql.streaming.queryEvolution.enableSourceEvolution을 false로 설정하여 명명된 원본 적용을 사용하지 않도록 설정합니다.

SINK_ID_REUSED

검사점 위치에서 <sinkId>싱크 이름 '<checkpointLocation>'을(를) 다시 사용할 수 없습니다. 이 싱크 이름은 이전에 사용된 후 다른 싱크로 대체되었습니다. 비활성 싱크 이름을 다시 사용하면 데이터 정확성 문제가 발생할 수 있습니다. 새 싱크를 사용하려면 DataStreamWriter의 name() 메서드(예: .name("my_new_sink")를 사용하여 다른 이름을 할당합니다.

싱크_프로바이더_불일치

검사점 위치에서 <sinkId>싱크 '<checkpointLocation>'에 대한 싱크 공급자를 변경할 수 없습니다. 싱크는 이전에 공급자 ''<previousProvider>를 사용했지만 지금은 ''<currentProvider>을 사용하고 있습니다. 동일한 싱크 이름을 유지하면서 싱크 형식을 변경하면 데이터 정확성 문제가 발생할 수 있습니다. 새 싱크 형식을 사용하려면 DataStreamWriter의 name() 메서드(예: .name("my_new_sink")를 사용하여 다른 이름을 할당합니다.

TOMBSTONE_SOURCE_NAME_REUSE

삭제 표시 원본 이름을 <sourceNames>다시 사용할 수 없습니다. 이러한 원본 이름은 이전에 사용된 후 검사점 위치 <checkpointLocation>의 스트리밍 쿼리에서 제거되었습니다. 삭제 표시된 원본 이름을 다시 사용하면 데이터 정확성 문제가 발생할 수 있습니다. 다른 원본 이름을 사용하세요.

이름 없는 스트리밍 싱크(UNNAMED_STREAMING_SINKS_WITH_ENFORCEMENT)

스트리밍 싱크는 spark.sql.streaming.queryEvolution.enableSinkEvolution을 사용할 때 이름을 지정해야 합니다. DataStreamWriter의 name() 메서드를 사용하여 스트리밍 싱크에 이름을 할당합니다.

이름 없는 스트리밍 소스 (규제 적용)

spark.sql.streaming.queryEvolution.enableSourceEvolution을 사용하는 경우 모든 스트리밍 원본의 이름을 지정해야 합니다. 명명되지 않은 출처가 발견 <sourceInfo>되었습니다. name() 메서드를 사용하여 모든 스트리밍 원본에 이름을 할당합니다.