Snowflake Copilot 사용하기

이 항목에서는 Snowflake Copilot 의 정의 및 데이터 분석 워크플로에서 이를 사용하는 방법을 소개합니다. 이 항목의 예제에서는 워크시트를 사용하지만, Snowflake Notebooks 에서 Snowflake Copilot 을 사용할 때도 동일한 단계가 적용됩니다.

참고

이 기능에 대한 지원은 다음 리전의 계정에서 사용할 수 있습니다.

  • AWS us-east-1

  • AWS us-west-2

  • AWS eu-central-1

  • Azure eastus2

소개

Snowflake Copilot 은 강력한 데이터 거버넌스를 유지하면서 데이터 분석을 간소화하고 기존 Snowflake 워크플로에 원활하게 통합할 수 있는 LLM 기반 어시스턴트입니다.

Snowflake Copilot 은 Snowflake가 미세 조정한 모델로 구동되며, Snowflake의 지능형 완전 관리형 AI 서비스인 Snowflake Cortex 내에서 우수한 보안 하에서 실행됩니다. 이 접근법은 엔터프라이즈 데이터와 메타데이터가 항상 Snowflake 내에서 안전하게 유지된다는 것을 의미합니다. Snowflake Copilot 은 또한 RBAC도 완전히 준수하며 액세스할 수 있는 데이터 세트만을 기반으로 제안을 제공합니다.

Snowflake Copilot 는 자연어 요청을 사용하여 처음부터 끝까지 데이터 분석을 가능하게 합니다. 우선, Copilot은 데이터가 정형화된 방법에 대한 질문에 답하고 새로운 데이터 세트를 탐색하는 데 도움을 줄 수 있습니다. 그런 다음 Copilot에게 SQL 쿼리를 생성하고 구체화하여 데이터에서 유용한 정보를 추출하도록 요청할 수 있습니다. Snowflake Copilot 은 최적화를 추천하거나 가능한 문제에 대한 수정 사항을 제안하여 SQL 쿼리를 개선하는 데 도움을 줄 수도 있습니다.

Snowflake Copilot 은 또한 SQL의 유창성이나 Snowflake 기능에 대한 이해를 높이는 데 도움이 될 수 있습니다. Snowflake와 Copilot에서 작업을 수행하는 방법에 대한 질문을 하면 Snowflake 설명서를 기반으로 답변이 제공됩니다.

사용자는 SQL Worksheets에서는 Copilot과 상호 작용하고, Snowsight 에서는 Snowflake Notebooks 와 상호 작용할 수 있습니다. Copilot 패널을 사용하여 질문을 입력하면 Snowflake Copilot 가 답변을 제공합니다. 워크시트나 노트북에서 제안된 SQL 쿼리를 실행할 수 있습니다.

액세스 제어 요구 사항

SNOWFLAKE 데이터베이스의 COPILOT_USER 데이터베이스 역할에는 사용자가 Snowflake Copilot 기능을 사용할 수 있는 권한이 포함되어 있습니다. 기본적으로 COPILOT_USER 역할은 PUBLIC 역할에 부여됩니다. PUBLIC 역할은 모든 사용자 및 역할에 자동으로 부여되므로 계정의 모든 사용자가 Snowflake Copilot 기능을 사용할 수 있습니다.

이 권한이 있는 사용자는 워크시트나 노트북의 오른쪽 하단에 Ask Copilot 이 표시되며 패널을 사용해 Snowflake Copilot 과 상호 작용할 수 있습니다.

Copilot에 대한 액세스 제한

모든 사용자에게 이 권한을 부여하지 않으려면 PUBLIC 역할에 대한 액세스를 취소하고 특정 역할에 대한 액세스 권한을 부여하면 됩니다.

PUBLIC 역할에서 COPILOT_USER 데이터베이스 역할을 취소하려면 ACCOUNTADMIN 역할을 사용하여 다음 명령을 실행합니다.

USE ROLE ACCOUNTADMIN;

REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER
  FROM ROLE PUBLIC;
Copy

이 역할이 없는 사용자는 워크시트나 노트북의 오른쪽 아래 모서리에 Ask Copilot 이 표시되지 않습니다. 왼쪽의 탐색 메뉴에서 활성 역할을 전환하여 Copilot에 액세스할 수 있는 역할로 전환하면 Ask Copilot 메뉴가 다시 표시됩니다. 자세한 내용은 활성 역할 전환하기 섹션을 참조하십시오.

그런 다음 특정 역할에 대한 액세스 권한을 선택적으로 제공할 수 있습니다. SNOWFLAKE.COPILOT_USER 데이터베이스 역할을 사용자에게 직접 부여할 수는 없습니다. 자세한 내용은 SNOWFLAKE 데이터베이스 역할 사용하기 섹션을 참조하십시오. ACCOUNTADMIN 역할이 있는 사용자는 사용자 지정 역할에 이 역할을 부여하여 사용자가 Snowflake Copilot 기능에 액세스할 수 있도록 허용할 수 있습니다. 다음 예제에서는 ACCOUNTADMIN 역할을 사용하고 이를 위해 생성한 계정 역할 copilot_access_role 을 통해 사용자 COPILOT_USER에 some_user 데이터베이스 역할을 부여합니다.

USE ROLE ACCOUNTADMIN;

CREATE ROLE copilot_access_role;
GRANT DATABASE ROLE SNOWFLAKE.COPILOT_USER TO ROLE copilot_access_role;

GRANT ROLE copilot_access_role TO USER some_user;
Copy

특정 사용자 그룹이 일반적으로 사용하는 기존 역할을 통해 Snowflake Copilot 에 대한 액세스 권한을 부여할 수도 있습니다. (사용자 역할 섹션을 참조하십시오.) 예를 들어, 조직에서 분석가가 기본 역할로 사용하는 analyst 역할을 생성한 경우 1개의 GRANT 문으로 이러한 사용자에게 Snowflake Copilot 에 대한 액세스 권한을 쉽게 부여할 수 있습니다.

GRANT DATABASE ROLE SNOWFLAKE.COPILOT_USER TO ROLE analyst;
Copy

지원되는 사용 사례

  • 개방형 질문을 통해 데이터를 탐색 하여 새로운 데이터 세트의 정형과 뉘앙스에 대해 알아봅니다.

  • 일반 영어로 된 질문으로 SQL 쿼리를 생성 합니다.

  • 버튼 클릭 한 번으로 Snowflake Copilot 이 제안하는 SQL 쿼리 사용 해 볼 수 있습니다. 실행하기 전에 쿼리를 편집할 수도 있습니다.

  • Snowflake Copilot 과의 대화를 통해 제안된 SQL 쿼리를 구체화하고 더 자세한 분석을 위해 후속 질문을 하여 복잡한 쿼리를 작성 할 수 있습니다.

  • Snowflake의 개념, 기능 및 특징에 대한 질문을 통해 Snowflake에 대해 알아볼 수 있습니다.

  • 쿼리 효율성을 평가하고 최적화를 찾거나 쿼리의 기능을 설명하는 데 도움이 되는 Snowflake Copilot 을 요청하여 쿼리를 개선 할 수 있습니다.

  • 각 답변에 대해 Snowflake Copilot 의 피드백(좋아요 또는 싫어요)을 제공 하면 제품 개선에 활용됩니다.

  • 응답을 생성할 때 고려할 Snowflake Copilot 에 대한 기본 설정이나 특정 비즈니스 지식 등의 사용자 지정 지침을 추가 합니다.

제한 사항

  • 제한적 언어 지원: 현재 영어와 SQL만 지원됩니다.

  • 데이터에 액세스할 수 없음: Snowflake Copilot 은 테이블 내부의 데이터에 액세스할 수 없습니다. 특정 열의 값을 필터링하려면 해당 값을 제공해야 합니다. 예를 들어, Snowflake Copilot 에 열 A 값이 “X”인 모든 행을 반환하도록 요청하는 경우 요청에 “X” 값을 제공해야 합니다. SQL 문 구성 및 실행 예제를 참조하십시오.

  • 교차 데이터베이스 또는 스키마 쿼리 지원되지 않음: 서로 다른 스키마 및 데이터베이스의 데이터를 조인하는 뷰를 만들어 사용하면 이 문제를 해결할 수 있습니다.

  • 지연 응답: Snowflake Copilot 은 제공된 응답의 길이에 따라 응답을 완료하는 데 1초 정도 걸릴 수 있습니다.

  • SQL 제안이 항상 효과가 있는 것은 아님: Snowflake Copilot 은 일부 경우 잘못된 SQL 구문이나 존재하지 않는 테이블 또는 열이 포함된 쿼리를 제안할 수 있습니다. 특정 응답에 대해서는 ‘좋아요’ 또는 ‘싫어요’ 버튼을 사용하여 피드백을 제공해 주십시오. 여러분의 피드백은 이 기능을 개선하는 데 도움이 됩니다.

  • 새로운 데이터베이스, 스키마 및 테이블 감지 지연: Snowflake Copilot 이 새로 생성된 데이터베이스, 스키마 및 테이블을 인식하는 데 최대 3~4시간이 걸릴 수 있습니다.

  • 제한된 수의 테이블 및 열을 고려: 응답을 생성하기 위해 Snowflake Copilot 은 먼저 요청과 가장 관련성이 높은 테이블과 열을 검색합니다. 그런 다음 검색 결과는 관련성에 따라 순위가 매겨지고, 응답을 생성할 때 결과의 각 테이블에서 상위 10개 표와 상위 10개 열만 고려됩니다.

Snowflake Copilot 사용 방법

Snowflake Copilot 은 추가 설정 없이 바로 사용할 수 있습니다. Snowflake Copilot 을 사용할 때는 다음 사항에 유의하십시오.

  • Snowflake Copilot 과의 각 채팅 세션은 특정 워크시트 또는 노트북과 연결되어 있습니다. 새로운 워크시트나 노트북을 열면 새로운 채팅 세션이 열립니다.

  • Snowflake Copilot 을 사용하려면 세션 중에 사용 중인 데이터베이스와 스키마가 있어야 합니다. Copilot은 이를 사용하여 관련성 있는 응답을 생성합니다.

  • Snowflake Copilot 은 데이터베이스, 스키마, 테이블 및 열의 이름과 열의 데이터 타입을 사용하여 쿼리할 수 있는 데이터를 결정합니다.

  • Snowflake Copilot 이 선택한 데이터베이스 및 스키마를 기반으로 질문에 답변할 수 없는 경우, Snowflake 설명서 또는 일반 SQL 지식과 같은 다른 방법을 사용하여 답변을 시도할 수 있습니다. 예상치 못한 응답을 받았다면 ‘좋아요’ 및 ‘싫어요’ 버튼을 사용하여 피드백을 남길 수 있습니다.

  • 질문에서 테이블 이름이나 열 이름을 참조해야 하는 경우에는 이름 앞에 @ 접두사를 붙입니다. 특정 테이블과 열을 참조하면 Snowflake Copilot 이 더욱 정확한 답변을 제공하는 데 도움이 될 수 있습니다.

  • 최적의 성능을 위해 데이터베이스, 스키마, 테이블, 열에 의미 있는 이름을 사용하고 열에 적절한 데이터 타입을 지정해야 합니다.

Snowflake Copilot 사용을 시작하려면 다음 단계를 따르십시오.

  1. 새로운 워크시트를 만들거나 기존 워크시트를 엽니다.

  2. 워크시트의 오른쪽 하단 모서리에서 Ask Copilot 을 선택합니다. 워크시트의 오른쪽에 Snowflake Copilot 패널이 열립니다.

  3. 현재 워크시트에 대한 데이터베이스와 스키마가 선택되었는지 확인합니다. 그렇지 않은 경우, 워크시트 상단의 선택기 또는 Snowflake Copilot 메시지 상자 아래의 선택기를 사용하여 선택할 수 있습니다.

  4. 메시지 상자에 질문을 입력한 다음 보내기 아이콘을 선택하거나 Enter 를 눌러 제출합니다. Snowflake Copilot 이 패널에 답변을 제공합니다.

  5. Snowflake Copilot 의 응답에 SQL 문이 포함된 경우:

    • Run 을 선택하여 쿼리를 실행합니다. 이렇게 하면 워크시트에 쿼리가 추가되고 실행됩니다.

    • 쿼리를 실행하기 전에 Add 를 선택하여 쿼리를 편집합니다. 이렇게 하면 워크시트에 쿼리가 추가됩니다.

사용자 지정 지침 추가

Snowflake Copilot 은 응답 방식을 사용자 지정할 수 있는 사용자 지정 지침을 허용합니다. 활성화하면 이러한 지침은 Snowflake Copilot 의 후방에 위치한 모델에 전송되는 프롬프트를 향상하기 위해 사용되며, Copilot이 새 응답을 생성할 때 고려됩니다. 사용자 지정 지시문에는 특정 어조를 사용하거나 특정 방식으로 응답하라는 지시문, SQL 작성 방법에 대한 기본 설정 또는 고려해야 할 데이터에 대한 추가 정보가 포함될 수 있습니다.

사용자 지정 지침을 추가할 때 다음 사항을 기억하십시오.

  • 사용자 지정 지침에는 2,000자 제한이 있습니다.

  • Snowflake는 사용자 지정 지침을 일반 영어로 작성하는 것을 권장합니다.

  • 이 지침은 해당 지침을 입력한 사용자로 한정되며 Snowflake Copilot 과의 모든 대화에 사용됩니다.

Snowflake Copilot 에 대한 사용자 지정 지침을 추가하려면 다음 단계를 따르십시오.

  1. 새로운 워크시트를 만들거나 기존 워크시트를 엽니다.

  2. 워크시트의 오른쪽 하단 모서리에서 Ask Copilot 을 선택합니다. 워크시트의 오른쪽에 Snowflake Copilot 패널이 열립니다.

  3. 패널 상단의 Snowflake Copilot 메뉴에서 Copilot 메뉴를 선택합니다.

  4. 드롭다운 메뉴에서 Custom instructions 를 선택합니다.

  5. 사용자 지정 지침 텍스트 상자를 활성화하려면 사용자 지정 지침 창의 왼쪽 하단에 있는 Enable for new chats 토글을 선택합니다.

  6. 지침을 영어로 작성합니다.

  7. 완료되면 Save 를 선택합니다.

  8. Copilot 패널에서 Snowflake Copilot 과 대화를 계속합니다.

다음 섹션에서는 다음 방법을 보여주는 예를 제공합니다.

이 예제에서는 Snowflake Marketplace 의 샘플 데이터 세트를 사용합니다.

전제 조건

이 섹션의 예제에서는 Snowflake Marketplace 의 Cybersyn Github Archive 데이터 세트 를 사용합니다.

  1. 계정에 Cybersyn Github Archive 데이터 세트 를 설치합니다.

  2. 새로운 워크시트를 만들거나 기존 워크시트를 엽니다.

  3. 워크시트의 오른쪽 하단 모서리에서 Ask Copilot 을 선택합니다.

  4. Cybersyn Github Archive 데이터베이스와 스키마를 선택합니다.

데이터 살펴보기

다음 예제는 Snowflake Copilot 을 사용하여 데이터 세트를 탐색하는 방법을 보여줍니다.

  1. “What types of questions can I ask about this dataset?”와 같은 개방형 질문을 입력합니다.

  2. Enter 를 누르면 Snowflake Copilot 이 선택한 데이터베이스와 스키마에 따라 응답을 생성합니다.

  3. “”What type of events can I filter by?” 또는 “Are any of these tables joinable?”과 같이 데이터에 대한 더 명확한 질문을 합니다.

  4. Snowflake Copilot 의 응답에 SQL 문이 포함된 경우 Add 를 선택하여 워크시트 끝에 쿼리를 추가하고 실행하기 전에 편집하거나 Run 을 선택하여 쿼리를 추가하고 자동으로 실행할 수 있습니다.

SQL 문 구성 및 실행

다음 예제는 Snowflake Copilot 을 사용하여 SQL 쿼리를 생성하는 방법을 보여줍니다.

  1. Snowflake Copilot 메시지 상자에 “How many stars were given in the past year?”라는 질문을 입력하고 Enter 를 누릅니다. Snowflake Copilot 이 질문에 답하는 SQL 쿼리로 응답합니다.

  2. Add 를 선택하여 워크시트 끝에 쿼리를 추가합니다.

  3. “Show me this for each month”라는 질문을 입력하고 Enter 를 누릅니다. Snowflake Copilot 이 질문에 대한 답하는 SQL 쿼리로 응답합니다.

  4. Run 을 선택하여 워크시트에 쿼리를 추가하고 쿼리를 실행합니다.

Snowflake Copilot 은 테이블 내부의 데이터에 액세스할 수 없습니다. Snowflake Copilot 이 열의 특정 값을 기준으로 필터링하는 SQL 문을 작성하도록 하려면 필터링할 값을 제공해야 합니다.

  1. 메시지 상자에 “what are all the repo names that start with ‘snowflake’?”라는 질문을 입력하고 Enter 를 누릅니다. Snowflake Copilot 은 공급자가 제공한 필터 값을 사용하는 SQL 쿼리로 응답합니다.

  2. 실행하기 전에 쿼리를 편집하려면 Run 를 선택하고, 워크시트에 쿼리를 추가하고 실행하려면 Add 을 선택합니다.

SQL 문 설명하기

다음 예제는 작업 중인 SQL 문을 설명하기 위해 Snowflake Copilot 을 사용하는 방법을 보여줍니다.

  • Snowflake Copilot 메시지 상자에 다음 질문과 SQL 쿼리를 입력합니다.

    Can you explain this query to me step-by-step?
    
    Copy
    SELECT
      github_repos.repo_name,
      COUNT(github_stars.repo_id) AS total_stars
    FROM
      github_repos
      JOIN github_stars ON github_repos.repo_id = github_stars.repo_id
    GROUP BY
      github_repos.repo_name
    ORDER BY
      total_stars DESC;
    
    Copy

Snowflake Copilot 는 제공된 쿼리에 대한 단계별 설명과 함께 응답합니다.

SQL 및 Snowflake에 대해 질문하기

Snowflake Copilot 은 Snowflake 설명서에 액세스할 수 있으며 Snowflake 또는 SQL에 대한 일반적인 질문에 답변할 수 있습니다. 시도해 볼 수 있는 몇 가지 예시 질문은 다음과 같습니다.

  • How do I write a SQL join?

  • What is Snowpark Cortex?

  • How do I ingest data into Snowflake?

Snowflake Copilot 사용을 위한 팁

  • 큐레이팅된 를 만들면 Snowflake Copilot 의 성능을 대폭 향상할 수 있습니다.

    뷰를 만들 때 다음 지침을 따르십시오.

    지침

    뷰와 열에는 설명적이고 이해하기 쉬운 이름을 사용합니다.

    이름을 선택할 때는 Snowflake Copilot 을 사용하는 동안 사용할 가능성이 높은 비즈니스 및 데이터 분류를 사용합니다.

    열에 특정 판매 날짜가 포함된 경우 열의 이름을 sale_date 로 지정합니다.

    모든 열의 데이터 타입이 적절한지 확인합니다.

    열에 특정 판매 날짜가 포함되어 있는 경우 해당 열의 유형이 DATE 인지 확인합니다.

    일반적으로 사용되는 메트릭/식을 새로운 열로 정의합니다.

    수익이 revenue - cost 로 정의된 경우 뷰에 열 (revenue - cost) AS profit 을 만듭니다.

    가능하다면 일반적인 조인과 복잡한 조인을 캡처합니다.

    두 테이블 productssales 의 조인이 자주 수행되는 경우 뷰가 이러한 테이블을 조인해야 합니다.

    일반적으로 조인되는 테이블 사이에 여러 개의 조인 경로가 있는 경우 뷰에서 선호하는 조인 경로를 사용합니다.

  • 질문할 때는 최대한 구체적으로 질문하십시오. 데이터에 대한 지식이 부족한 사람에게 질문을 한다고 상상해 보십시오.

  • 열 내부의 특정 값을 필터링하려면 Snowflake Copilot 에게 자세하게 설명해야 할 수 있습니다. 열의 모든 고유 값을 반환하는 쿼리를 Snowflake Copilot 에 요청할 수 있습니다.

비용

Snowflake Copilot 은 현재 무료로 이용 가능합니다. 가격 및 청구에 대한 자세한 내용은 추후 공개될 예정이지만, 이 기능에 대한 요금이 적용되기 전에 사용자에게 알림이 제공됩니다.