ServiceNow® 인스턴스 준비하기

Snowflake Connector for ServiceNow® V2에는 Snowflake Connector 약관 이 적용됩니다.

Snowflake Connector for ServiceNow®V2 를 설치하기 전에 ServiceNow® 인스턴스를 설정해야 합니다. 다음 단계를 완료합니다.

ServiceNow® 인스턴스 액세스

  • ServiceNow® 인스턴스가 공개적으로 사용 가능한지 확인합니다. 커넥터는 VPN 뒤에 숨겨진 인스턴스와 함께 작동하지 않습니다.

  • ServiceNow® 인스턴스에 IP 주소 액세스 제어 를 사용하는 경우 커넥터를 성공적으로 설치할 수 없습니다. 자세한 내용은 커뮤니티 문서 섹션을 참조하십시오.

ServiceNow® 사용자

커넥터의 ServiceNow® 사용자를 식별하거나 생성합니다.

ServiceNow® 인스턴스에 연결하려면 커넥터가 ServiceNow® 사용자로 인스턴스에 인증해야 합니다. 다음 요구 사항을 충족하는 ServiceNow® 사용자를 선택합니다.

  • 사용자 이름에 콜론(:)을 포함할 수 없습니다.

  • 사용자는 수집할 ServiceNow® 테이블의 모든 레코드에 대한 읽기 액세스 권한이 있어야 합니다. ACL(액세스 제어 목록)은 이러한 테이블의 어떤 레코드도 이 사용자로부터 숨겨서는 안 됩니다.

  • 스키마 감지를 활성화하려면 사용자에게 다음 테이블의 모든 행에 대한 읽기 액세스 권한이 있어야 합니다.

    • sys_db_object (name, super_class, sys_id 필드 포함),

    • sys_glide_object (name, scalar_type, sys_id 필드 포함),

    • sys_dictionary (element, internal_type, name, sys_id 필드 포함),

  • 적절한 수집 전략을 사용하려면 사용자에게 다음 테이블의 모든 행에 대한 읽기 액세스 권한이 있어야 합니다.

    • sys_table_rotation (namesys_id 필드 포함).

  • 비용 효율성이 떨어지는 “잘라내기 및 로드” 수집 모드를 사용하지 않으려면 사용자에게 아래 테이블의 sys_updated_on 필드에 대한 읽기 액세스 권한이 있어야 합니다.

    • sys_db_object,

    • sys_glide_object,

    • sys_dictionary,

    • sys_table_rotation,

    • 저널 테이블(일반적으로 sys_audit_delete).

참고

Snowsight에서는 대화형 사용자 로만 ServiceNow®에 대한 OAuth 인증을 사용해 연결을 구성할 수 있습니다. ServiceNow® 사용자는 사용자에 대해 Web service access only 설정이 비활성화된 경우 대화형 사용자가 됩니다.

SQL 명령으로 연결을 구성한 경우에만 비대화형 사용자로 OAuth 인증을 사용할 수 있습니다. 이 경우에는 ServiceNow®에 로그인할 수 없거나 Snowsight를 사용하여 OAuth 새로 고침 토큰을 받을 수 없습니다.

최적화된 성능을 위해 열 인덱스 설정

sys_updated_on 필드가 있는 ServiceNow® 테이블을 수집하고 동기화하려는 경우 해당 열에 인덱스를 설정하는 것이 좋습니다. 인덱스 설정에 대한 자세한 내용은 ServiceNow® 설명서의 테이블 인덱스 만들기 를 참조하십시오.

사용자 인터페이스를 통해 인덱스를 생성한 후에는 인덱스가 구성되는 데 다소 시간이 걸릴 수 있습니다. 인덱싱 프로세스는 백그라운드 작업으로 실행됩니다.

인스턴스에 큰 테이블이 있는 경우 ServiceNow® 고객 지원팀에 연락해 큰 테이블을 인덱싱하는 최선의 접근법에 대해 문의하는 것이 좋습니다.

선택적 단계

  • OAuth 인증 방법을 사용할 계획이고 ServiceNow® 사용자에게 할당된 읽기 전용 역할 이 있는 경우 glide.security.snc_read_only_role.tables.exempt_create 시스템 속성은 값 목록에 oauth_credential 테이블이 있습니다.

    sys_properties 테이블에서 glide.security.snc_read_only_role.tables.exempt_create 속성을 생성하거나 편집합니다. 이 속성 편집에 대한 자세한 내용은 ServiceNow 기술 자료 를 참조하십시오.

    새 시스템 속성을 추가하는 방법을 알아보려면 ServiceNow® 설명서에서 시스템 속성 추가 를 참조하십시오.

  • 삭제된 레코드를 전파할 수 있도록 하려면 sys_audit_delete 테이블 또는 사용자 지정 저널 테이블을 삭제된 레코드에 대한 정보 소스로 사용합니다.

    참고

    커넥터는 모든 저널 테이블 레코드에 액세스할 수 있어야 합니다. 그렇지 않으면 설치가 실패할 수 있습니다. 그렇지 않으면 다른 테이블의 레코드 삭제가 올바르지 않을 수 있습니다.

    저널 테이블 행이 ACL로 숨겨진 경우 커넥터 동작을 예측할 수 없습니다. 설치에 성공하더라도 일부 삭제 항목은 프로세스의 후반부에서 올바르게 동기화되지 않을 수 있습니다.

    • sys_audit_delete 를 사용하려면 다음을 수행하십시오.

      1. no_audit_delete 사전 특성false 로 설정합니다.

      2. 커넥터의 ServiceNow® 사용자가 sys_audit_delete 테이블과 이 테이블의 documentkey, tablename, sys_id, sys_created_on 필드에 액세스할 수 있는지 확인합니다.

    • 사용자 지정 저널 테이블을 사용하려면 다음을 수행하십시오.

      1. documentkeytablename 이라는 문자열 필드가 있는 snowflake_connector_journal 이라는 저널 테이블을 만듭니다.

      2. 커넥터의 ServiceNow® 사용자가 snowflake_connector_journal 테이블과 이 테이블의 u_documentkey, u_tablename, sys_id, sys_created_on 필드에 액세스할 수 있는지 확인합니다.

      3. 다음 코드를 사용하여 RecordChange 라는 스크립트 포함을 만듭니다.

        var RecordChange = Class.create();
        
        RecordChange.prototype= {
          initialize :function() {},
          captureChange :function(tableName, docID) {
            var changeCapture = new GlideRecord('u_snowflake_connector_journal');
            changeCapture.initialize();
            changeCapture.setValue('u_documentkey', docID);
            changeCapture.setValue('u_tablename', tableName);
            changeCapture.insert();
          },
          type :'RecordChange'
        };
        
        Copy
      4. 레코드 삭제를 캡처하는 비즈니스 규칙을 정의합니다.

        (function executeRule(current, previous /*null when async*/) {
            new RecordChange().captureChange(current.getTableName(), current.getUniqueValue());
        })(current, previous);
        
        Copy
      5. 삭제된 레코드를 전파하려는 각 테이블에 대해 레코드가 삭제된 후 실행되도록 이 비즈니스 규칙을 구성합니다.

      참고

      커넥터는 감사가 수행된 경우에만 삭제된 레코드를 동기화할 수 있습니다. DBDelete.setWorkflow() 를 호출하지 않는 삭제 작업은 Snowflake에서 수집되지 않습니다.

      DBDelete.setWorkflow() 사용에 대한 자세한 내용은 ServiceNow® 제품 설명서를 참조하십시오.

      또한, 삭제된 레코드와 관련하여 유의해야 할 사항은 다음과 같습니다.

      • no_audit_delete=true 사전 속성이 포함된 테이블에 대해서는 레코드 삭제가 추적되지 않습니다.

      • sys 접두사가 포함된 테이블에서는 레코드 삭제가 기본적으로 추적되지 않습니다.

      • 감사된 테이블에 참조 필드가 있는 경우 커넥터는 연속 레코드 삭제를 통해서만 삭제된 레코드를 수집할 수 있습니다. 연속 레코드 삭제에 대한 자세한 내용은 ServiceNow® 제품 설명서를 참조하십시오.

다음 단계

이러한 절차를 완료한 후 Snowsight로 커넥터 설치 및 구성하기 또는 SQL 명령을 사용하여 커넥터 설치 및 구성하기 의 단계를 따르십시오.