커넥터 문제 해결하기¶
ServiceNow®용 Snowflake 커넥터에는 커넥터 약관 이 적용됩니다.
이 항목에서는 Snowflake Connector for ServiceNow® 와 관련된 문제를 해결하기 위한 지침을 제공합니다.
이 항목의 내용:
참고
다음 섹션에서는 커넥터 데이터베이스 의 PUBLIC 스키마에 정의된 저장 프로시저에 대해 설명합니다. 이러한 저장 프로시저를 호출하기 전에 해당 데이터베이스를 세션에 사용할 데이터베이스로 선택하십시오.
예를 들어 해당 데이터베이스의 이름이 my_connector_servicenow
인 경우 다음 명령을 실행합니다.
USE DATABASE my_connector_servicenow;
ServiceNow 인스턴스에 대한 연결 확인하기¶
Snowflake Connector for ServiceNow® 가 ServiceNow 인스턴스에 액세스할 수 있는지 확인하려면, 커넥터 데이터베이스 의 PUBLIC 스키마에 저장된 TEST_SN_CONNECTION
저장 프로시저를 호출합니다.
CALL TEST_SN_CONNECTION('<table_name>');
여기서
table_name
ServiceNow 인스턴스의 테이블 이름을 지정합니다.
커넥터가 올바르게 설정된 경우 저장 프로시저는 지정된 테이블에서 행을 반환합니다.
예를 들어 커넥터의 데이터베이스 이름이 my_connector_servicenow
이고 ServiceNow 인스턴스에 있는 my_table
이라는 테이블에서 행을 검색하여 연결을 확인하려는 경우 다음 명령을 실행하십시오.
USE DATABASE my_connector_servicenow;
CALL TEST_SN_CONNECTION('my_table');
ServiceNow 및 Snowflake의 테이블 행 수 비교하기¶
ServiceNow 및 Snowflake에서 모두 테이블의 현재 행 수를 비교하려면 CHECK_SN_ROW_COUNT
프로시저를 호출하십시오.
CALL CHECK_SN_ROW_COUNT('<table_name>');
여기서
table_name
ServiceNow 인스턴스의 테이블 이름을 지정합니다.
프로시저가 시간 초과될 경우 프로시저는 stats
API를 사용하여 ServiceNow에 있는 테이블의 행 수를 확인할 수 없습니다. 이는 이 테이블의 행 수가 너무 커서 이 API에서 계산할 수 없다는 의미일 수 있습니다.
참고
반환되는 행의 수는 달라질 수 있습니다. ServiceNow 테이블에는 동등한 Snowflake 테이블보다 더 많은 행이 포함될 수 있습니다. 이는 ServiceNow의 지정된 테이블에 대해 설정된 ACL(액세스 제어 목록) 규칙으로 인해 발생할 수 있습니다.
테이블에 대해 데이터 범위 시작 시간 이 구성되면 반환되는 행 수가 다를 수 있습니다. ServiceNow 행 수는 여전히 모든 행 수를 나타내는 반면, 구성에 따라 제한된 수의 행만 Snowflake에 수집되었습니다.
커넥터는 ServiceNow 테이블의 행 수에 대한 정보를 검색하기 위해 다양한 엔드포인트를 사용합니다. 커넥터는 stats
를 사용하여 행 수를 비롯한 테이블에 대한 정보를 확인합니다. 커넥터는 table
을 사용하여 데이터를 Snowflake로 수집합니다.
행 수집 상태 확인하기¶
ServiceNow 및 Snowflake의 가능한 모든 위치에서 행 수집 상태를 확인하려면 CHECK_RECORD_HISTORY
프로시저를 호출하십시오.
CALL CHECK_RECORD_HISTORY('<table_name>', '<sys_id>');
여기서
table_name
ServiceNow 인스턴스의 테이블 이름을 지정합니다.
sys_id
확인할 행의
sys_id
를 지정합니다.
이 프로시저는 다음 속성을 포함하는 JSON 오브젝트를 반환합니다.
속성 |
설명 |
---|---|
|
테이블의 이름입니다. |
|
ServiceNow의 행에 대한 고유 식별자입니다. |
|
행 수집 상태입니다. |
|
행이 ServiceNow의 테이블에 있는 경우 |
|
행이 ServiceNow의 감사 테이블에서 추적되는 경우 |
|
행이 이미 수집되었고 Snowflake의 |
|
이 각 오브젝트에는 데이터 변경의 타임스탬프와 이벤트 유형을 지정하는 이벤트 로그 테이블의 열에 해당하는 다음 속성이 포함되어 있습니다.
|
삭제에 대한 테이블 감사 여부 확인하기¶
Snowflake Connector for ServiceNow® 는 감사에 의존하여 레코드 삭제를 Snowflake에 전파합니다.
ServiceNow의 지정된 테이블이 레코드 삭제를 감사하도록 구성되었는지 확인하려면 CHECK_IF_AUDIT_ENABLED
저장 프로시저를 호출하십시오.
CALL CHECK_IF_AUDIT_ENABLED('<table_name>');
여기서
table_name
ServiceNow 인스턴스의 테이블 이름을 지정합니다.
이 저장 프로시저는 지정된 테이블에 대한 audit
및 no_audit_delete
구성을 확인하고 감사 활성화 여부에 대한 정보를 출력합니다.
문제 해결 데이터 가져오기¶
문제 해결 데이터를 가져오려면 GET_TROUBLESHOOTING_DATA
저장 프로시저를 호출합니다.
CALL GET_TROUBLESHOOTING_DATA(<number_of_days>);
여기서
number_of_days
과거 데이터를 가져올 일수를 지정합니다.
이 저장 프로시저는 다음 데이터를 테이블 형식으로 반환합니다.
구성 정보
커넥터에서 발생한 오류
수집 기록
다음 예제에서는 이 저장 프로시저를 호출하는 방법을 보여줍니다.
USE DATABASE my_connector_servicenow;
CALL GET_TROUBLESHOOTING_DATA(1);
반환된 데이터를 CSV 형식으로 저장하여 Snowflake 지원 으로 보낼 수 있습니다.
ServiceNow에 대한 연결 테스트하기¶
커넥터가 ServiceNow 인스턴스에 액세스할 수 있는지 확인하려면 GET_CONNECTION_STATUS
저장 프로시저를 호출합니다.
이 저장 프로시저는 설정 중에 제공된 시크릿에 저장된 연결 및 자격 증명을 확인합니다. 다음 두 키가 있는 베리언트를 반환합니다.
status
details
다음 예제에서는 GET_CONNECTION_STATUS
저장 프로시저 실행을 보여주도록 호출하는 방법을 보여줍니다.
USE DATABASE my_connector_servicenow;
CALL GET_CONNECTION_STATUS();
액세스할 수 없는 오브젝트 복원하기¶
커넥터에는 커넥터 데이터베이스 외부에 위치하는 여러 데이터베이스 오브젝트가 필요합니다. 이러한 오브젝트를 사용할 수 없으면 커넥터가 실패하거나 올바르게 작동하지 않습니다. 오브젝트를 사용할 수 없게 될 수 있는 상황은 다음과 같습니다.
오브젝트를 삭제하는 경우.
필수 권한을 유지하거나 복원하지 않고 오브젝트를 재생성하는 경우.
커넥터가 이러한 오브젝트를 사용하기 위해 필요한 권한 부여를 취소하는 경우.
대부분의 경우, 이러한 오브젝트를 다시 생성하고 필요한 권한을 부여하여 수동으로 복원할 수 있습니다. 다음 섹션에서는 여러 오브젝트를 복원하는 방법에 대해 설명합니다.
커넥터 웨어하우스 복원하기¶
커넥터가 웨어하우스에 대한 액세스 권한을 상실한 경우, CONFIGURE_WAREHOUSE 저장 프로시저를 호출하여 새 커넥터를 구성합니다.
커넥터 시크릿 오브젝트 복원하기¶
커넥터에서 사용하는 시크릿 오브젝트 가 삭제되면 동일한 이름을 사용하여 동일한 데이터베이스 및 스키마에 시크릿을 다시 생성해야 합니다.
시크릿의 정규화된 이름을 확인하려면 다음 명령을 실행합니다.
SELECT value:secret FROM GLOBAL_CONFIG WHERE key = 'connection_config';
또한, 커넥터가 사용하는 사용자 지정 역할 에 대한 재생성 시크릿에 USAGE 권한도 부여해야 합니다.
시크릿 오브젝트의 데이터베이스 또는 스키마가 삭제된 경우 UNDROP 명령을 실행하여 복원할 수 있습니다. 이 명령을 수행하면 시크릿 오브젝트도 복원됩니다.
UNDROP
명령을 사용할 수 없는 경우 동일한 이름을 사용하여 데이터베이스 및 스키마를 다시 생성해야 합니다. 또한, 커넥터에서 사용하는 사용자 지정 역할 에 대한 데이터베이스 및 스키마에 USAGE 권한도 부여해야 합니다.
API 통합 복원하기¶
커넥터에서 사용하는 API 통합 이 삭제되면 동일한 이름을 사용하여 다시 생성해야 합니다. 커넥터에 필요한 API 통합의 이름을 확인하려면 다음 명령을 실행합니다.
SELECT value:apiIntegrationName FROM GLOBAL_CONFIG WHERE key = 'connection_config';
API 통합을 다시 생성할 때 이전에 사용한 동일한 정규화된 시크릿 이름 및 ServiceNow 인스턴스 URL을 사용해야 합니다.
시크릿의 정규화된 이름을 확인하려면 다음 명령을 실행합니다.
SELECT value:secret FROM GLOBAL_CONFIG WHERE key = 'connection_config';
ServiceNow 인스턴스 URL을 확인하려면 다음 명령을 실행합니다.
SELECT value:serviceNowUrl FROM GLOBAL_CONFIG WHERE key = 'connection_config';
또한, 커넥터에서 사용하는 사용자 지정 역할 에 대한 재생성 API 통합에 USAGE 권한도 부여해야 합니다.
ServiceNow 데이터에 대한 데이터베이스 및 스키마 복원하기¶
ServiceNow 데이터에 대한 데이터베이스 또는 스키마 가 삭제된 경우, 복원할 수 있는 유일한 방법은 UNDROP 명령을 실행하는 것입니다. 이 명령을 사용할 수 없는 경우 커넥터를 다시 설치하고 ServiceNow 데이터를 다시 수집해야 합니다.
ServiceNow 데이터가 포함된 뷰 가 삭제된 경우, 생성을 담당하는 백그라운드 작업이 다음 번에 실행될 때 이 뷰가 자동으로 다시 생성되어야 합니다.
ServiceNow 데이터(이벤트 로그 또는 원시 데이터 테이블)가 포함된 테이블 중 하나가 삭제되고 UNDROP TABLE 명령을 사용하여 이를 복구할 수 없는 경우, 다음을 수행하여 ServiceNow 테이블의 수집을 다시 시작하십시오.
이 ServiceNow 테이블의 이벤트 로그와 원시 데이터 테이블이 모두 삭제되었는지 확인하십시오.
DELETE_TABLE 프로시저 를 사용합니다.
커넥터의 사용자 지정 역할 복원하기¶
커넥터에서 사용하는 사용자 지정 역할 이 삭제된 경우, 동일한 이름을 사용하여 다시 생성해야 합니다. 커넥터에 필요한 역할의 이름을 확인하려면 다음 쿼리를 실행합니다.
SELECT value FROM GLOBAL_CONFIG WHERE key = 'data_owner_role';
또한, 나열된 권한을 역할에 복원해야 합니다. GLOBAL_CONFIG 뷰를 사용하여 해당 오브젝트의 이름을 결정할 수 있습니다.
또한, 역할은 해당 스키마 의 ServiceNow 데이터가 포함된 모든 테이블 및 뷰에 대한 소유권도 있어야 합니다.
이 스키마에서 추가 테이블 또는 뷰를 수동으로 생성하지 않은 경우 GRANT OWNERSHIP ON ALL TABLES/VIEWS IN SCHEMA ... TO ROLE ...
명령을 실행하여 역할을 복원할 수 있습니다.
예를 들어, ServiceNow 데이터가 dest_db
데이터베이스와 dest_schema
스키마에 저장된 경우, connector_resources_provider
역할을 복원하려면 다음 명령을 실행합니다.
GRANT OWNERSHIP ON ALL TABLES IN SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider;
GRANT OWNERSHIP ON ALL VIEWS IN SCHEMA dest_db.dest_schema TO ROLE connector_resources_provider;
재생성된 역할은 커넥터 데이터베이스에도 부여되어야 합니다. 예를 들어 connector_resources_provider
라는 역할을 my_connector_servicenow
데이터베이스에 부여하려면 다음 명령을 실행하십시오.
GRANT ROLE connector_resources_provider TO DATABASE my_connector_servicenow;
커넥터에 대한 알림 통합 복원하기¶
알림 통합 오브젝트에 대한 커넥터의 액세스 권한이 상실된 경우, 경고 구성 절차를 다시 수행하고 필요한 경우 알림 통합 오브젝트를 다시 생성하십시오.
이메일 알림이 Snowsight 를 통해 구성된 경우 알림을 비활성화한 후 다시 활성화하여 필요한 외부 오브젝트를 복원할 수 있습니다.