1. Snowflake Copilot
개요
- LLM 기반 AI 어시스턴트로, 데이터 분석 전 과정을 자연어로 지원
- Snowflake Cortex 내에서 실행되며, 엔터프라이즈 데이터와 메타데이터는 Snowflake 외부로 나가지 않음
- RBAC(역할 기반 접근 제어)를 완전히 준수하며, 사용자가 접근 가능한 데이터셋 기반으로만 결과를 제공
- Snowsight의 SQL Worksheet에서 사용 가능 (우측 하단
Ask Copilot 패널)
⚠️ 중요: Snowflake Copilot은 Cortex Code로 대체되고 있음. 자세한 내용은 Cortex Code in Snowsight 참고
지원 지역 (Native 지원)
| 클라우드 | 리전 |
|---|
| AWS | US West 2 (Oregon), US East 1 (N. Virginia), US East Commercial Gov, Europe Central 1 (Frankfurt), AP Northeast 1 (Tokyo), Europe West 1 (Ireland), AP Southeast 2 (Sydney) |
| Azure | East US 2 (Virginia), West Europe (Netherlands) |
- 그 외 리전에서 사용하려면
CORTEX_ENABLED_CROSS_REGION 파라미터 설정 필요
접근 제어 (Access Control)
SNOWFLAKE.COPILOT_USER 데이터베이스 역할이 기본적으로 PUBLIC 역할에 부여됨
- → 모든 사용자가 기본적으로 Copilot 사용 가능
- 접근을 제한하려면
ACCOUNTADMIN으로 PUBLIC 역할에서 COPILOT_USER 역할을 회수
USE ROLE ACCOUNTADMIN;
REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER FROM ROLE PUBLIC;
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;
SNOWFLAKE.COPILOT_USER 역할은 사용자에게 직접 부여 불가 → 반드시 Role을 통해 부여
모델 선택 로직 (Model-Level RBAC 활성화 시)
- Anthropic Claude Sonnet 3.5 사용 (AWS US West, AWS US East, 또는 Cross-region inference 활성화 시)
- Claude Sonnet 3.5 불가 시 → Mistral Large 2 사용
- Mistral Large 2도 불가 시 → Copilot이 Snowsight UI에서 표시되지 않으며 API 요청도 실패
지원 기능 (Use Cases)
- 데이터 구조 탐색 (Explore your data)
- 자연어로 SQL 쿼리 생성 (Generate SQL queries)
- 생성된 SQL 즉시 실행 또는 편집 후 실행
- 후속 질문을 통한 복잡한 쿼리 빌드 (대화형)
- Snowflake 개념 및 기능 학습 (문서 기반 답변)
- 쿼리 최적화 및 디버깅 지원
- 응답에 대한 피드백 제공 (👍 / 👎)
- Custom Instructions 추가 가능 (사용자별 설정)
제한 사항 (Limitations)
- 테이블 내부 데이터에 직접 접근 불가: 필터 값을 사용자가 직접 제공해야 함
- Cross database/schema 쿼리 미지원: View를 생성하여 우회 가능
- 상위 10개 테이블, 각 테이블당 상위 10개 컬럼만 고려하여 응답 생성
- 새로 생성된 DB/스키마/테이블 인식까지 최대 3~4시간 지연 가능
- SQL 제안이 항상 유효하지 않을 수 있음 (피드백으로 개선에 기여)
Custom Instructions
- 최대 2,000자 제한
- 사용자 개별 설정이며 해당 사용자의 모든 대화에 적용
- 영어 평문(plain English)으로 작성 권장
Ask Copilot → Copilot 메뉴 → Custom Instructions → Enable 토글 → 저장
비용 (Costs)
2. Cortex AI Functions: Documents
개요
Snowflake는 다양한 문서 유형에서 정보를 처리·파싱·분류·추출하는 AI 기반 문서 인텔리전스 기능을 SQL 함수로 제공한다.
핵심 기능 3가지:
- 비정형 텍스트/레이아웃 → 구조화된 분석 가능 콘텐츠로 변환 (Parse)
- 엔티티·테이블·필드 등 구조화 정보 추출 (Extract)
- 문서 유형 분류 → 다운스트림 워크플로우 자동화 (Classify)
핵심 문서 처리 함수
| 함수 | 역할 |
|---|
AI_PARSE_DOCUMENT | 디지털/스캔 문서를 레이아웃 보존하여 텍스트로 변환. 이미지 추출 가능. RAG 파이프라인, 시맨틱 검색, 요약에 적합 |
AI_EXTRACT | 텍스트·테이블·체크박스·필기·시각 요소 이해. 스키마 기반 구조화 데이터 추출 특화 |
AI_CLASSIFY | 사용자 정의 카테고리로 문서 분류 (예: 인보이스, 계약서, 명세서 구분 → 각 워크플로우로 라우팅) |
AI_COMPLETE | 가장 범용적. 프롬프트 기반 텍스트 생성/추출/변환. 모델 선택 가능 |
텍스트 추가 처리 함수
| 함수 | 역할 |
|---|
AI_SENTIMENT | 텍스트 감성 분석 |
AI_TRANSLATE | 언어 간 번역 |
SUMMARIZE | 텍스트 요약 |
주요 Use Cases
1) RAG 파이프라인 구축 (챗봇 / 기업 검색 서비스)
AI_PARSE_DOCUMENT로 문서 처리 → Cortex Search Services로 인덱싱 → AI_COMPLETE로 컨텍스트 기반 응답 생성
2) 문서 처리 파이프라인 구축
- 스키마 기반 추출, 자연어 Q&A, 텍스트/레이아웃 추출, 분류 기반 라우팅
- 커스텀 추출·분류 모델을 모델 레지스트리에 저장하여 팀 간 재사용 가능
3. Cortex AI Functions (LLM Functions)
개요
- OpenAI, Anthropic, Meta, Mistral AI, DeepSeek 등 산업 최고 수준 LLM을 사용하여 텍스트 및 이미지에 대한 비정형 분석 수행
- SQL 함수 형태 및 Python으로도 사용 가능
- 모든 LLM은 Snowflake Service 경계 내부에 배포됨 → 데이터 보안 보장
접근 권한
USE AI FUNCTIONS 계정 레벨 권한 필요
CORTEX_USER 또는 AI_FUNCTIONS_USER 데이터베이스 역할 중 하나 필요
전체 Cortex AI Functions 목록
핵심 AI 함수 (Cortex AI Functions)
| 함수 | 설명 |
|---|
AI_COMPLETE | 텍스트 또는 이미지에 대한 LLM 응답 생성. 대부분의 생성형 AI 작업에 사용 |
AI_CLASSIFY | 텍스트 또는 이미지를 사용자 정의 카테고리로 분류 |
AI_FILTER | 텍스트/이미지 입력에 대해 True/False 반환 (SELECT, WHERE, JOIN ON 절에서 사용 가능) |
AI_AGG | 텍스트 컬럼을 집계하여 여러 행에 걸친 인사이트 반환. 컨텍스트 윈도우 제한 없음 |
AI_EMBED | 텍스트/이미지 임베딩 벡터 생성 (유사도 검색, 클러스터링, 분류에 사용) |
AI_EXTRACT | 문자열 또는 파일(텍스트, 이미지, 문서)에서 정보 추출. 다국어 지원 |
AI_SENTIMENT | 텍스트 감성 추출 |
AI_SUMMARIZE_AGG | 텍스트 컬럼 집계 후 요약 반환. 컨텍스트 윈도우 제한 없음 |
AI_SIMILARITY | 두 입력 간 임베딩 유사도 계산 |
AI_TRANSCRIBE | 스테이지에 저장된 오디오/비디오 파일을 텍스트·타임스탬프·화자 정보로 변환 |
AI_PARSE_DOCUMENT | 스테이지의 문서에서 텍스트 추출 (OCR 모드 또는 LAYOUT 모드). 이미지 추출 가능 |
AI_REDACT | 텍스트에서 PII(개인 식별 정보) 마스킹 |
AI_TRANSLATE | 지원 언어 간 텍스트 번역 |
SUMMARIZE (SNOWFLAKE.CORTEX) | 지정한 텍스트의 요약 반환 |
헬퍼 함수 (Helper Functions)
| 함수 | 설명 |
|---|
TO_FILE | 내부/외부 스테이지의 파일 참조 생성 (AI_COMPLETE 등에서 사용) |
AI_COUNT_TOKENS | 입력 텍스트의 토큰 수 반환 (모델 한도 초과 방지) |
PROMPT | AI_COMPLETE 등에서 사용할 프롬프트 객체 생성 |
성능 고려사항
- Cortex AI Functions는 처리량(Throughput) 최적화 설계 → 대규모 테이블의 다수 입력 처리에 적합
- 배치 처리 권장
- 레이턴시가 중요한 인터랙티브 사용 사례에는 REST API 사용 권장 (Complete API, Embed API, Agents API)
4. AI_COMPLETE 함수 상세
개요
- 텍스트 또는 이미지를 기반으로 지원 언어 모델에서 응답(Completion) 생성
COMPLETE 함수의 업데이트 버전 (최신 기능 사용 시 AI_COMPLETE 권장)
입력 유형별 Syntax
| 입력 유형 | 참조 문서 |
|---|
| 텍스트 프롬프트 (단일 문자열) | AI_COMPLETE (Single string) |
| 단일 이미지 + 텍스트 프롬프트 | AI_COMPLETE (Single image) |
| 프롬프트 객체 (다중 이미지 + 텍스트) | AI_COMPLETE (Prompt object) |
- 모든 Syntax 변형에서 선택적으로
return_error_details BOOLEAN 파라미터 사용 가능
에러 처리 (Error Behavior)
- 기본 동작: 처리 실패 시 NULL 반환
- 다중 행 처리 시, 에러가 발생한 행만 NULL 반환 (전체 쿼리는 계속 실행)
return_error_details 값 | 반환 값 |
|---|
| FALSE 또는 미입력 | NULL |
| TRUE | value (성공 시 결과, 실패 시 NULL) + error (실패 시 에러 메시지, 성공 시 NULL) 가 포함된 OBJECT |
접근 제어 (Access Control)
SNOWFLAKE.CORTEX_USER 데이터베이스 역할이 부여된 역할 사용 필요
🗂️ 핵심 요약 비교표
| 항목 | Snowflake Copilot | Cortex AI Functions |
|---|
| 주요 목적 | 자연어로 SQL 생성 및 데이터 탐색 | SQL 기반 AI 작업 자동화 (텍스트·이미지·문서) |
| 사용 위치 | Snowsight Worksheet (UI) | SQL 쿼리 내 함수 호출 |
| 데이터 접근 | 테이블 내부 데이터 접근 불가 | 테이블 데이터에 직접 함수 적용 가능 |
| 접근 권한 | SNOWFLAKE.COPILOT_USER | SNOWFLAKE.CORTEX_USER 또는 AI_FUNCTIONS_USER |
| 비용 | 현재 무료 | 별도 요금 정책 적용 |
| 모델 선택 | 자동 선택 (Claude Sonnet 3.5 → Mistral Large 2) | AI_COMPLETE에서 직접 모델 지정 가능 |
| 데이터 보안 | Snowflake 내부에서만 처리 | 모든 LLM이 Snowflake Service 경계 내 배포 |