문제 해결하기

이 항목에서는 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>"
}
Copy

데이터베이스 오브젝트

Snowflake Native SDK for Connectors 은 커넥터의 실제 상태를 확인하는 데 도움이 되는 몇 가지 뷰와 프로시저를 제공합니다.

뷰:

프로시저:

이벤트 테이블

기본적으로, Java로 구현된 SDK에서 제공하는 프로시저는 특정 프로시저 실행 중에 발생한 예외를 래핑하기 위해 ConnectorErrorHelper 를 사용합니다. throw된 예외를 래핑하고 오류 코드와 함께 ConnectorResponse 에 매핑할 뿐만 아니라, ConnectorErrorHelper 의 기본 구현은 throw된 예외를 기반으로 이벤트를 이벤트 테이블(고객 계정에 설정된 경우)에 기록합니다. 이벤트 테이블 사용에 대해 자세히 알아보려면 공식 Snowflake 설명서 섹션을 참조하십시오.

애플리케이션 인스턴스 이름만 알면 이벤트 테이블에서 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];
Copy

가능한 오류 코드:

  • 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() 프로시저를 사용하여 커넥터를 다시 시작하는 것이 좋습니다.