자습서: Snowflake ServiceNow® 데이터 수집 커넥터 설치

소개

이 자습서를 사용하여 Snowsight 마법사를 사용하여 ServiceNow®용 Snowflake Connector를 구성 및 이해하고, 일부 테이블을 선택하고, 데이터를 수집하고, 예제 쿼리를 실행해 보십시오.

이 자습서에서는 모든 내용을 다루지 않습니다. 전체 기능 및 제한 사항은 Snowflake Connector for ServiceNow®V2 정보 를 참조하십시오.

참고

이 자습서에서는 ServiceNow® 계정이 없는 경우를 가정하여 개발자 계정을 만드는 단계를 안내합니다. Servicenow® 계정이 있는 경우 자유롭게 사용할 수 있습니다. 단, ServiceNow®용 Snowflake Connector에는 커넥터 약관 이 적용됩니다.

전제 조건

이 자습서를 시작하기 전에 다음 요구 사항을 충족했는지 확인합니다.

  • Snowflake Marketplace의 서비스 약관에 동의할 수 있는 ORGADMIN 권한.

  • 커넥터를 설치할 Snowflake 계정에 대한 ACCOUNTADMIN 권한.

알아볼 내용

이 자습서에서는 다음 내용에 대해 알아봅니다.

  • ServiceNow®용 Snowflake Connector 설정 방법.

  • ServiceNow® 데이터를 Snowflake에 수집하는 방법

  • 개발 환경에서 불필요한 비용을 피하기 위해 커넥터를 중지하는 방법.

필요한 사항

빌드할 사항

ServiceNow®에서 Snowflake로의 수집 데이터 흐름.

ServiceNow® 개발자 인스턴스 설정

ServiceNow® 계정에서 이 커넥터를 테스트하고 싶지 않다면 개발자 인스턴스를 사용할 수 있습니다. 이 섹션에서는 개발자 인스턴스를 설정하는 방법을 설명합니다.

  1. ServiceNow® 개발자 웹사이트 로 이동하여 개발자 사용자를 만듭니다.

  2. 새로 생성한 사용자로 개발자 웹사이트에 로그인한 후 Create an Instance 를 선택합니다.

  3. 인스턴스 유형을 선택합니다. 인스턴스 URL과 사용자 및 비밀번호가 포함된 이메일을 받게 됩니다.

배포는 보통 5분 정도로 매우 빠르게 수행됩니다. 기다리는 동안, 다음 단계로 넘어가서 Snowflake를 구성해 보겠습니다!

Snowflake 계정 만들기 및 설정

Snowflake 계정 만들기

Snowflake 계정이 없는 경우, snowflake.com 에서 무료 평가판을 받을 수 있습니다. Start for Free 를 선택하고 지침을 따릅니다.

이용 약관에 동의

  1. Snowsight 웹 인터페이스를 통해 Snowflake 계정에 로그인하고 ORGADMIN 역할로 변경합니다.

  2. Admin » Billing & Terms 를 선택합니다.

  3. Snowflake Marketplace 섹션에서 컨슈머 서비스 약관을 검토합니다.

  4. 약관에 동의하면 Accept Terms & Conditions 를 선택합니다.

가상 웨어하우스 설정

커넥터에는 가상 웨어하우스가 필요합니다. 필요한 웨어하우스를 만들려면 다음을 수행합니다.

ACCOUNTADMIN 역할로 변경합니다.

  1. Admin -> Warehouses 로 이동하여 + Warehouse 를 선택합니다.

  2. 웨어하우스 이름으로 CONNECTOR_UI_WH 를 지정하고, 크기를 XS로 지정하고, 다른 모든 기본값은 그대로 둡니다.

  3. Create Warehouse 를 선택합니다.

ServiceNow® 커넥터 설치

이 커넥터는 Snowflake Marketplace를 통해 제공되며 모든 Snowflake 고객이 이용할 수 있습니다. 선택한 후에는 여러 가지 뷰와 저장 프로시저가 있는 애플리케이션으로 계정에 설치됩니다.

  1. 왼쪽 메뉴에서 Data Products 를 선택한 다음 Marketplace 를 선택합니다.

  2. 검색창에 ServiceNow 를 입력하고 타일을 선택합니다.

  3. 비즈니스 요구 사항과 사용 샘플을 검토합니다.

  4. Get 을 선택합니다.

  5. 이전에 만든 CONNECTOR_UI_WH 웨어하우스를 선택합니다.

  6. Options 를 선택합니다.

  7. 이 자습서에서는 설치 데이터베이스의 기본 이름인 Snowflake_Connector_for_ServiceNow 를 수락합니다. 추가 역할을 선택하지 마십시오.

  8. Get 을 선택합니다. 이제 커넥터를 사용할 준비가 되었음을 나타내는 Snowflake Connector for ServiceNow 가 표시됩니다.

  9. Done 을 선택합니다. 관리 옵션은 다음 섹션에서 지정합니다.

다음으로, 커넥터가 설치되었는지 확인합니다. Snowsight에서 Data Products -> Apps 로 이동합니다. 이름이 Snowflake_Connector_for_ServiceNow 인 새 애플리케이션이 설치되어 있어야 합니다.

Data -> Databases 에서 공개 스키마로 이동하여 새로 사용 가능한 뷰 및 프로시저를 살펴봅니다.

모든 전제 조건 완료

Data Products -> Apps -> Snowflake Connector for ServiceNow 에서 ServiceNow®용 Snowflake Connector를 실행합니다. 커넥터가 데이터 수집을 시작하기 전에 완료해야 하는 작업 목록이 표시됩니다. 다음 설명을 주의 깊게 읽고 각각을 완료합니다.

마지막 단계 중 하나는 OAuth2 인증을 사용하려면 애플리케이션 레지스트리를 생성하라는 메시지입니다. 다음 몇 단계에서는 이를 중심으로 설명합니다.

다음 섹션에서는 두 개의 브라우저 탭을 열어 특정 데이터를 Snowflake에서 ServiceNow®로 복사할 수 있도록 하는 것이 좋습니다.

  • Snowflake에서 커넥터를 사용하여 애플리케이션 레지스트리에 붙여 넣을 리디렉션 URL을 생성합니다.

  • ServiceNow®에서, 클라이언트 ID와 시크릿을 제공하는 Application Registry가 필요하며, 이를 Snowflake에 붙여넣습니다.

Snowflake에서

  1. 리디렉션 URL을 입력합니다. 이 URL은 다음 섹션에서 필요합니다.

  2. 브라우저에서 (위의 탭을 닫지 않고) 새 탭을 열고 다음 섹션의 단계를 따릅니다.

ServiceNow®에서

  1. ServiceNow® 개발자 인스턴스에 로그인합니다

  2. 기본 페이지에서 All 을 선택하고 Application Registry 를 검색합니다.

  3. 창의 오른쪽 상단에서 New 를 선택합니다.

  4. Create an OAuth API endpoint for external clients 를 선택합니다.

  5. 엔드포인트에 Snowflake_connector 같은 이름을 지정합니다. 클라이언트 시크릿을 비워두면 이 값은 나중에 자동으로 채워집니다.

  6. Snowflake 쪽에서 생성된 리디렉션 URL을 붙여넣습니다.

  7. Submit 를 선택합니다. 창을 닫습니다.

  8. 방금 만든 레지스트리를 선택하여 다시 엽니다. 클라이언트 ID클라이언트 시크릿 은 자동으로 생성됩니다.

    ServiceNow® 브라우저 탭을 닫거나 클라이언트 ID클라이언트 시크릿 을 안전한 곳에 보관하지 마십시오. 나중에 필요할 수 있습니다.

    Snowflake 구성 탭으로 돌아갑니다.

커넥터 구성

  1. Start configuration 을 선택합니다. 구성 화면이 표시됩니다. 기본적으로, 필드는 커넥터를 구성할 때 생성한 오브젝트의 이름으로 설정됩니다. 기존 오브젝트를 사용할 수도 있습니다. 선택된 가상 웨어하우스는 커넥터가 백그라운드 데이터 수집에 사용합니다.

  2. 자세한 내용은 Snowflake Connector for ServiceNow®V2 구성하기 섹션을 확인하십시오.

  3. Configure 를 선택합니다.

구성 프로세스가 완료되는 데 몇 분 정도 걸릴 수 있습니다.

참고

이 단계에서는 자동 중지가 10분으로 설정된 Large 웨어하우스를 만들었습니다. 매시간 새로 고침하도록 설정하면 Large 웨어하우스(시간당 8크레딧)는 매시간 최소 10분 동안 활성화됩니다. 이 자습서에서는 이 작업이 필요하지 않습니다. Admin -> Warehouses -> SERVICENOW_WAREHOUSE -> … > Edit 로 이동하여 이를 XSMALL로 변경하고 자동 시간 제한을 1분으로 변경합니다. 실제 사용 사례에서는 Large 웨어하우스 크기가 필요한 경우가 많습니다.

참고

리소스 모니터를 SERVICENOW_WAREHOUSE 에 연결해야 합니다. 리소스 모니터를 연결하려면 Admin » Resource Monitors 로 이동하여 Resource Monitor 를 선택한 다음 웨어하우스 리소스 모니터를 만듭니다.

Snowflake를 ServiceNow® OAuth2 핸드 셰이크로 설정

  1. OAuth2 를 인증 메서드로 선택합니다.

  2. ServiceNow® 인스턴스 세부 정보를 입력합니다. 이는 ServiceNow® 계정에서 https://* 프로토콜과 후행 service-now.com제외하고 ServiceNow® URL의 첫 번째 부분입니다.

  3. ServiceNow®의 Client idClient secret 을 Snowflake 마법사에 붙여넣습니다.

  4. Connect 를 선택합니다. ServiceNow® 계정이 팝업되고 Snowflake에 연결할 것을 요청합니다.

  5. Allow 를 선택합니다. 두 시스템 사이에 연결이 설정되었습니다.

연결을 확인하려면 점 세 개 […]와 View Details 를 선택합니다. 팝업 상단에 ServiceNow 가 인증된 날짜가 표시됩니다.

참고

문제가 발생한 경우 클라이언트 시크릿이 복사되지 않았을 수 있습니다. 비밀번호 필드의 잠금을 해제하고 텍스트를 복사하여 붙여넣습니다.

삭제 동기화 구성

삽입과 업데이트뿐만 아니라 삭제도 Snowflake와 동기화하려면 저널 테이블의 이름을 제공해야 합니다. 기본적으로 ServiceNow®는 삭제된 레코드에 대한 정보를 저장하기 위해 sys_audit_delete 테이블을 사용하므로 이 이름을 자유롭게 입력해도 됩니다. 삭제를 신경 쓰지 않는다면 이 필드를 비워두면 됩니다.

커넥터가 원본 시스템에 연결할 수 있고 필요한 모든 테이블에 액세스할 수 있는지 확인하려면 Validate 를 선택합니다. 이 프로세스를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 완료되면 Define data to sync 를 선택하여 수집할 테이블을 선택합니다.

ServiceNow® 테이블 선택

참고

다음 사항에 유의하십시오.

  • 커넥터는 sys_id 열이 있는 테이블만 수집할 수 있습니다.

  • ServiceNow® 뷰는 지원되지 않습니다. 이러한 뷰를 수집하는 대신, 기본 뷰에 대한 모든 테이블을 동기화하고 Snowflake에서 동기화된 테이블을 조인해야 합니다.

  • 증분 업데이트 는 sys_updated_on 또는 sys_created_on 열이 있는 테이블에서만 이루어집니다.

  • sys_updated_on 또는 sys_created_on 열이 없는 테이블의 경우 커넥터는 truncate and load 모드를 사용합니다. 이 모드에서는 테이블이 항상 초기 로드 접근 방식을 사용하여 수집되며 새로 수집된 데이터가 이전 데이터를 바꿉니다.

  1. Snowflake Connector for ServiceNow 창의 상단 표시줄에서 Data Sync 를 선택합니다.

  2. 나중에 테스트 쿼리를 실행하려면 몇 개의 테이블을 수집해야 합니다. 검색 창에서 incident 를 입력하고 옆에 있는 확인란을 선택한 다음 30분 동기화 시간을 선택합니다.

  3. 다른 테이블을 선택하려면 검색을 지우고 테이블 이름을 입력한 후 확인란을 선택합니다. 최소한으로, task 테이블에 대해서는 이 작업을 수행합니다.

참고

힌트: 검색 필드를 지운 다음 제목 Status 를 선택하면 선택한 모든 테이블이 정렬되어 표시됩니다.

  1. Start Sync 를 선택합니다. 선택 창이 닫히고 메인 커넥터 창에 Syncing Data 라는 메시지가 표시됩니다. 선택한 테이블 외에 세 개의 시스템 테이블도 로드됩니다. sys_dictionary, sys_db_object, sys_glide_object 는 원시 데이터에 대한 뷰를 작성하는 데 필요합니다.

성공을 나타내는 메시지가 표시됩니다. 이 메시지는 최소한 하나의 테이블이 완전히 수집되면 표시됩니다.

참고

수집을 너무 일찍 중단하지 마십시오. 대상 데이터베이스에 먼저 뷰가 빌드되었는지 확인합니다.

커넥터 모니터링

워크시트를 열어 커넥터 상태를 확인합니다. 모니터링 정보를 얻기 위해 실행할 수 있는 SQL 쿼리의 몇 가지 예제는 다음과 같습니다.

// Return general information about all ingestions
SELECT * FROM SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.public.connector_stats;
// Search for information about particular table ingestions
SELECT * FROM SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.public.connector_stats WHERE table_name = '<table_name>';
// Examine connector configuration
SELECT * FROM SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.public.connector_configuration;
// Calculate ingested data volume
SELECT
    table_name,
    sum(ingested_rows) AS row_count
FROM SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.public.connector_stats
GROUP BY table_name
ORDER BY table_name;
// General connector statistics
SELECT * FROM SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.public.connector_overview;
Copy

수집된 데이터에 대한 액세스 구성하기

커넥터는 DATA_READER 애플리케이션 역할을 노출합니다. 이 역할은 대상 스키마에 수집된 모든 데이터에 대한 읽기 액세스 권한을 갖습니다. 설치 과정의 구성 단계에서 제공된 역할에 자동으로 부여됩니다. 이 이름은 이 가이드 앞부분의 스크린샷에 SERVICE_NOW_RESOURCES_PROVIDER 로 표시되어 있습니다. 필요한 경우 애플리케이션 역할이나 계정 역할을 추가로 부여할 수 있습니다.

데이터 쿼리

대상 데이터베이스의 대상 스키마에서 커넥터가 생성한 테이블을 조사합니다. 동기화를 위해 구성된 ServiceNow®의 각 테이블에 대해 커넥터는 다음 테이블과 뷰를 생성합니다.

  • 각 레코드가 단일 VARIANT 열에 포함된 원시 형식의 데이터를 포함하고 이름이 동일한 테이블.

  • 평면화된 형식의 데이터를 포함하는 table_name__view 라는 뷰. 이 뷰에는 원래 테이블의 각 열에 대한 열과 원래 테이블에 있는 각 레코드에 대한 행이 포함됩니다.

참고

커넥터를 시작한 후 뷰가 생성되는 데 다소 시간이 걸릴 수 있습니다. 뷰를 생성하려면 ServiceNow® sys_db_object, sys_dictionarysys_glide_object 테이블의 데이터가 필요합니다. 테이블 동기화를 활성화하면 커넥터가 이러한 ServiceNow® 테이블에서 메타데이터를 로드합니다. 커넥터가 이 메타데이터를 로드하는 데 다소 시간이 걸릴 수 있습니다. 뷰가 생성되는 동안 웨어하우스를 중지하지 마십시오.

  • table_name__view 와 동일한 데이터는 물론이고 ServiceNow®에서 삭제된 레코드 행도 포함하는 이름이 table_name__view_with_deleted 인 뷰.

  • 커넥터가 ServiceNow®에서 가져온 변경 기록이 포함된 테이블 table_name__event_log 입니다.

원시 데이터에서 쿼리하려면 원시 데이터에 액세스하기 를 검토합니다. 뷰를 쿼리하려면(권장) 평면화된 데이터에 액세스하기 를 검토합니다.

월별 및 우선 순위별로 제기된 인시던트 수를 식별하는 쿼리

다음은 월별 및 우선 순위별로 제기된 인시던트 수를 파악하기 위한 테스트 쿼리입니다. 다른 예제 쿼리는 Marketplace의 ServiceNow®용 Snowflake Connector 페이지에서 확인할 수 있습니다.

USE ROLE SERVICE_NOW_RESOURCES_PROVIDER;
USE DATABASE SERVICENOW_DEST_DB;
USE SCHEMA DEST_SCHEMA;
WITH T1 AS (
    SELECT
    DISTINCT
        T.NUMBER AS TICKET_NUMBER,
        T.SHORT_DESCRIPTION,
        T.DESCRIPTION,
        T.PRIORITY,
        T.SYS_CREATED_ON AS CREATED_ON,
        T.SYS_UPDATED_ON AS UPDATED_ON,
        T.CLOSED_AT
    FROM TASK__VIEW T
    LEFT JOIN INCIDENT__VIEW I
        ON I.SYS_ID = T.SYS_ID -- ADDITIONAL INCIDENT DETAIL
   WHERE I.SYS_ID IS NOT NULL -- THIS CONDITION HELPS KEEP JUST THE INCIDENT TICKETS
)
SELECT
 YEAR(CREATED_ON) AS YEAR_CREATED,
 MONTH(CREATED_ON) AS MONTH_CREATED,
 PRIORITY,
 COUNT(DISTINCT TICKET_NUMBER) AS NUM_INCIDENTS
FROM T1
GROUP BY
    YEAR_CREATED,
    MONTH_CREATED,
    PRIORITY
ORDER BY
    YEAR_CREATED,
    MONTH_CREATED,
    PRIORITY
;
Copy

커넥터에 대한 액세스 권한 부여하기

커넥터는 대상 데이터베이스의 데이터에 액세스하는 데 사용되는 역할 외에 두 가지 애플리케이션 역할을 노출합니다.

  • VIEWER 역할에는 커넥터 구성 및 상태에 대한 읽기 전용 액세스 권한이 있습니다.

  • 커넥터 구성을 수정하고 수집을 활성화/비활성화할 수 있는 ADMIN 역할

오류 모니터링, 통계 실행, 커넥터 통계 검사, 사용 설정된 테이블 검사를 위해 커넥터 데이터베이스의 뷰 및 읽기 전용 프로시저에 액세스할 수 있는 ServiceNow® 모니터링 역할을 설정할 수 있습니다.

예를 들어, 워크시트에서 다음을 실행합니다(그런 다음 해당 역할 사용).

USE ROLE accountadmin;
CREATE ROLE IF NOT EXISTS servicenow_monitor_role;
GRANT APPLICATION ROLE SNOWFLAKE_CONNECTOR_FOR_SERVICENOW.viewer TO ROLE servicenow_monitor_role;
GRANT USAGE ON WAREHOUSE SERVICENOW_WAREHOUSE TO ROLE servicenow_monitor_role;
Copy

수집 중지

이 자습서에서는 데이터만 수집하므로 초기 로드 후에는 수집을 중지하는 것이 좋습니다. 하지만 운영 환경에서는 커넥터를 중지할 수 없습니다.

참고

커넥터를 중지하지 않으면 지정된 시간 간격으로 가상 웨어하우스가 활성화되고 크레딧이 소모됩니다.

  1. Snowsight에서 Snowflake Connector for ServiceNow 타일을 선택합니다.

  2. Snowflake Connector for ServiceNow 창에서 Pause Connector 를 선택합니다.

커넥터 제거(데이터는 제거하지 않음)

자습서를 완료했거나 어떤 이유로든 커넥터가 더 이상 필요하지 않은 경우 Snowflake Marketplace를 통해 커넥터를 쉽게 제거할 수 있습니다.

  1. 데이터 제품 을 선택한 다음 을 선택합니다.

  2. 목록에서 커넥터 앱을 나타내는 점 세 개 아이콘을 선택합니다.

  3. 제거 를 선택합니다.

  4. 애플리케이션이 소유한 오브젝트(대상 스키마에 수집된 데이터가 있는 테이블 및 뷰)를 삭제할지 아니면 소유권을 다른 역할로 이전할지 결정합니다.

  5. 제거 를 선택합니다.

결론 및 리소스

축하합니다! ServiceNow®용 Snowflake Connector를 성공적으로 설치 및 구성하고, 데이터를 수집하고, 쿼리를 실행하여 인시던트 및 우선 순위에 대한 인사이트를 수집했습니다.

알아본 내용

  • ServiceNow®용 Snowflake Connector 설정 방법.

  • ServiceNow® 데이터를 Snowflake에 수집하는 방법.

  • 개발 환경에서 불필요한 비용을 피하기 위해 커넥터를 중지하는 방법.