문제 해결하기¶
이 항목에서는 Snowflake Native SDK for Connectors 와 관련된 문제를 해결하기 위한 지침을 제공합니다. 특정 오류의 원인을 찾으려면 문제 해결 프로세스를 더 원활하게 해주는 적절한 도구가 필요합니다. 그러한 이유로 Snowflake Native SDK for Connectors 은 커넥터 문제를 효과적으로 해결하기 위한 몇 가지 프로시저, 뷰 및 기타 메서드를 제공합니다.
프로시저 응답¶
일반적으로 커넥터에 문제가 발생하거나 사용자가 커넥터의 상태로 인해 특정 프로시저를 성공적으로 실행할 수 없는 경우, 문제 해결 데이터의 첫 번째 소스는 프로시저 응답이어야 합니다. Snowflake Native SDK for Connectors 에서, 프로시저의 오류 응답이 표준화됩니다. 응답은 항상 존재하는 두 개의 필드가 있는 VARIANT
로 반환됩니다.
response_code
- 오류 응답이 있는 경우 이 필드의 값은 오류 코드(예:INVALID_CONNECTOR_STATUS
)입니다.message
- 이 필드의 값은 발생한 오류에 대한 추가 정보를 제공하는 메시지입니다.
오류 응답의 구조:
{ "response_code": "<ERROR_CODE>", "message": "<error message>" }
데이터베이스 오브젝트¶
Snowflake Native SDK for Connectors 은 커넥터의 실제 상태를 확인하는 데 도움이 되는 몇 가지 뷰와 프로시저를 제공합니다.
뷰:
PUBLIC.CONNECTOR_CONFIGURATION
(연결 구성 참조 참조)PUBLIC.SYNC_STATUS
(동기화 상태 참조 참조)PUBLIC.CONNECTOR_STATS
(커넥터 통계 참조 참조)PUBLIC.AGGREGATED_CONNECTOR_STATS
(커넥터 통계 참조 참조)
프로시저:
이벤트 테이블¶
기본적으로, Java로 구현된 SDK에서 제공하는 프로시저는 특정 프로시저 실행 중에 발생한 예외를 래핑하기 위해 ConnectorErrorHelper
를 사용합니다. throw된 예외를 래핑하고 오류 코드와 함께 ConnectorResponse
에 매핑할 뿐만 아니라, ConnectorErrorHelper
의 기본 구현은 throw된 예외를 기반으로 이벤트를 이벤트 테이블(고객 계정에 설정된 경우)에 기록합니다. 이벤트 테이블 사용에 대해 자세히 알아보려면 로깅, 추적 및 메트릭 섹션을 참조하십시오.
애플리케이션 인스턴스 이름만 알면 이벤트 테이블에서 Snowflake Native SDK for Connectors 이 생성한 로그를 필터링할 수 있습니다. 또한 커넥터의 가장 일반적인 부분에서 발생한 오류 로그를 필터링할 수도 있습니다.
예제 쿼리:
SELECT * FROM PLATFORM_CI_TOOLS.PUBLIC.EVENTS
WHERE RESOURCE_ATTRIBUTES:"snow.database.name" LIKE '<INSTANCE_NAME>'
[AND SCOPE:"name" LIKE '<ERROR_CODE>']
[ORDER BY timestamp DESC];
가능한 오류 코드:
CONFIGURE_CONNECTOR_FAILED
- 커넥터 구성 마법사 단계가 실패하면 발생합니다.SET_CONNECTION_CONFIGURATION_FAILED
- 연결 구성 마법사 단계가 실패했을 때 발생합니다.FINALIZE_CONNECTOR_CONFIGURATION_FAILED
- 커넥터 구성 완료 마법사 단계가 실패했을 때 발생합니다.PAUSE_CONNECTOR_FAILED
- 커넥터 일시 중지 프로세스가 실패하면 발생합니다.RESUME_CONNECTOR_FAILED
- 커넥터 재개 프로세스가 실패하면 발생합니다.
커넥터 상태 복구¶
프로세스를 일시 중지하거나 다시 시작하는 동안 잡히지 않은 오류가 발생하여 커넥터가 프로세스를 롤백하지 않고 예기치 않게 실패하는 경우 ERROR
커넥터 상태가 설정될 수 있습니다. 또한 어떤 이유로든 이러한 프로세스가 갑자기 종료되면 커넥터가 STARTING
또는 PAUSING
커넥터 상태로 ‘멈춤’ 상태가 될 수 있습니다.
이러한 문제는 위에서 언급한 방법을 사용하여 진단하고 적절한 복구를 시도해야 합니다. 대부분의 경우 커넥터를 완전히 다시 설치해야 할 수도 있지만, 복구에 성공했고 남은 유일한 문제가 ‘멈춘’ 커넥터 상태인 경우 몇 가지 가능한 해결책이 있을 수 있습니다.
커넥터가
STARTING
상태에서 ‘멈춤’ 상태인 경우 -PUBLIC.RESUME_CONNECTOR()
프로시저를 다시 호출하면 상태 문제가 수정될 수 있습니다.커넥터가
PAUSING
상태에서 ‘멈춤’ 상태인 경우 -PUBLIC.PAUSE_CONNECTOR()
프로시저를 다시 호출하면 상태 문제가 수정될 수 있습니다.앞서 언급한 방법이 실패했거나 커넥터가
ERROR
상태인 경우 -PUBLIC.RECOVER_CONNECTOR_STATE(STRING)
프로시저를 사용하여 상태를 강제 변경할 수 있습니다(코어 SQL 참조 참조).PAUSED
상태로 강제 변경하고PUBLIC.RESUME_CONNECTOR()
프로시저를 사용하여 커넥터를 다시 시작하는 것이 좋습니다.