Main Quest - Snowflake/[시리즈] Cortex AI Functions

[Cortex_AI_1] AI_COMPLETE 배치 파이프라인 방어 전략

포스 삼촌 2026. 7. 12. 18:00

​"Cortex AI 범용 함수 완벽 가이드: AI_COMPLETE 실무 패턴과 사라질 TRY_COMPLETE를 대체할 방어적 쿼리 설계법"
​이런 느낌으로 서두에 "공식 가이드북(GES-C02) 시험 범위에는 TRY_COMPLETE가 포함되어 있지만, 이는 2026년 말 Deprecated 예정이므로 실무 신규 플젝에서는 AI_COMPLETE와 함께 다른 예외 처리 방식을 고려하는 것이 좋습니다" 라고 한 줄 얹어주면?

AI_COMPLETE,
 AI_COUNT_TOKENS
 
그리고 TRY_COMPLETE

**"방어적 데이터 파이프라인 설계 법칙"**
외 처리와 헬퍼 함수
> **Q. 수천만 건의 텍스트를 처리하는 야간 배치 파이프라인(Task/Dynamic Table)에서 특정 데이터의 유해성(Toxicity)이나 모델 권한 에러 때문에 전체 쿼리가 멈추는 것을 방지하기 위해 데이터 엔지니어가 취해야 할 조치는?**
>
* **정답: AI_COMPLETE 대신 TRY_COMPLETE를 사용한다.**
* **핵심 원리 (이걸 외워야 해!):**
   * AI_COMPLETE는 런타임 에러(모델 미지원, 토큰 초과, 권한 부족 등) 발생 시 **쿼리 전체를 Fail(터짐)** 시켜버려.
   * TRY_COMPLETE는 에러가 발생한 그 로우(Row)만 **NULL 값으로 리턴**하고 다음 데이터로 넘어가기 때문에, 전체 파이프라인이 중단 없이 끝까지 안전하게 실행돼.
### 🔍 연계 암기: 비용 예측 치트키
> **Q. AI_COMPLETE를 호출하기 전에, 이번 달 AI 크레딧 소모량을 예측하고 비용을 최적화하기 위해 프롬프트의 길이를 미리 정수(Integer) 형태로 계산해 주는 헬퍼 함수는?**
>
* **정답: AI_COUNT_TOKENS**
* **연계 팁:** 블로그 글 쓸 때 AI_COUNT_TOKENS(프롬프트) 형태로 먼저 토큰 수를 체크한 뒤, 일정 토큰 이상은 필터링하는 방어 쿼리를 짜주면 100점짜리 아키텍처가 됨!
"에러가 나면 쿼리가 터지는 대신 **NULL**을 뱉는 녀석은 **TRY_COMPLETE**다!" 요

 

 

 

AI_COMPLETE가 기본적으로 오류가 발생하면 그냥 달랑NULL만 리턴하자나. 그러면, COALESCE() 같은걸로 감싸서 처리를 대응하면, 오류가 나도 다음 반복으로 넘어가거나 해서 무사히 loop 파이프라인 같은게 처리 가능하다는 거지?

 

맞습니다. 정확한 이해입니다.

sql
-- 대량 배치 처리 시: NULL이면 기본값으로 대체 → 전체 쿼리 중단 없음
SELECT 
  id,
  COALESCE(
    AI_COMPLETE('claude-sonnet-4-6', prompt_column),
    '처리 실패'
  ) AS result
FROM my_table;

AI_COMPLETE의 기본 동작이 "에러  NULL 반환 (쿼리 중단  함)"이기 때문에:

  • 10만   5건 실패해도  나머지 99,995건은 정상 처리
  • NULL인 행만 나중에 재처리하면 

이게 Q3에서 나온 포인트입니다  return_error_details 원인 파악용이고, 파이프라인 안정성은 이미 기본 동작(NULL)으로 보장됩니

-- 실패 건 재처리
SELECT * FROM voc_results WHERE result = '처리 실패';
-- → 이것만 다시 AI_COMPLETE 돌리기. VoC 파이프라인!!