FactStack

BigQuery 생성형 AI 함수 토큰 쿼터 설정법, 일일 비용 상한 관리

데이터 인프라

한마디로

BigQuery AI 함수를 돌릴 때 하루 토큰 한도를 미리 정해 비용이 새지 않게 막을 수 있어요

한눈에

BigQuery의 생성형 AI 함수(AI.GENERATE, AI.IF, AI.CLASSIFY, AI.SCORE 등)는 토큰 단위로 과금되는데요, 이번에 일일 토큰 쿼터 기능이 정식 출시(GA)됐습니다. 프로젝트 단위와 사용자 단위로 입력, 출력 토큰 한도를 걸 수 있어서 SQL 파이프라인에 LLM을 붙이는 팀도 하루 AI 예산 상한을 직접 정할 수 있게 됐어요.

기존에는 어땠나

LLM 함수를 SQL에 넣으면 쿼리 하나로 수백만 건의 상담 티켓을 분류하거나 상품 리뷰마다 감성 점수를 매길 수 있습니다. 문제는 토큰 과금이라 데이터 규모가 커질수록 비용도 같이 커진다는 점이에요. 원문도 대규모 데이터셋에 확장할수록 예산을 미리 관리하는 일이 중요해진다고 짚습니다.

이번에 나온 쿼터 4종

일일 쿼터 4종은 Google Cloud IAM 쿼터 체계로 관리하며, 프로젝트 단위와 사용자 단위로 제어합니다. 사용자별 한도는 프로젝트 안의 각 사용자에게 적용되고 조직 전체에 걸리지는 않아요. 알아둘 점이 몇 가지 있습니다.

  • 쿼터는 글로벌 기준이라 사용량이 모든 리전에서 합산됩니다. 보지 않던 리전에서 비용이 쌓이는 일을 막아줘요.
  • 출력 쿼터에는 추론(thinking) 토큰도 포함됩니다. Gemini 플랫폼 청구서에서 추론 토큰이 과금되는 방식과 같아요.
  • 적용 대상은 AI.GENERATE, AI.GENERATE_TABLE, AI.GENERATE_TEXT(별칭 ML.GENERATE_TEXT), AI.CLASSIFY, AI.IF, AI.SCORE, AI.AGG입니다.
  • AI.GENERATE_EMBEDDING, AI.EMBED 같은 임베딩 함수는 더 저렴한 다른 모델로 돌아가므로 대상이 아니에요.

한도 설정과 모니터링

콘솔에서 IAM & Admin → Quotas & System Limits로 들어가 BigQuery API로 필터링하고, Name 열로 정렬하면 AI 쿼터 4개가 위에 뜹니다. 한도를 줄이면 승인 없이 바로 적용되고, 늘리고 싶으면 같은 화면에서 증액을 요청합니다. 많은 요청은 자동 승인되고 큰 증액은 간단한 검토를 거쳐요.

권한은 Owner, Editor, Quota Administrator, Service Usage Admin 중 하나가 필요합니다. 여러 프로젝트에 같은 가드레일을 깔려면 Cloud Quotas API, gcloud CLI, Terraform으로 자동화할 수 있어요. 같은 페이지에서 과거 토큰 사용량 그래프(7일, 14일, 30일, 직접 지정)도 볼 수 있어서 급증 구간을 빨리 찾을 수 있습니다.

쿼터를 다 쓰면 벌어지는 일

필요한 쿼터가 이미 소진된 상태면 쿼리는 시작 전에 QuotaExceeded 오류로 거부됩니다. 실행 도중 소진되면 BigQuery가 새 LLM 호출을 멈춰요. 이때 동작은 함수 종류에 따라 갈립니다.

  • AI.IF처럼 max_error_ratio를 지원하는 함수는 미처리 행이 비율 안이면 부분 결과를 돌려주고, 넘으면 실패합니다.
  • AI.GENERATE 같은 범용 함수는 쿼리가 성공하지만 건너뛴 행에는 생성값이 없고 status 필드에 쿼터 초과 오류가 남아요.

파이프라인 후처리에서 status 필드가 비었는지 확인하는 로직을 넣어두면 좋습니다.

실무 적용 체크리스트

  • 사용자별 쿼터부터 설정합니다. 한 사람의 실험이 프로젝트 예산을 다 먹는 상황을 막아줘요.
  • 본 실행 전에 AI.COUNT_TOKENS로 입력 규모를 잽니다. 모델 토크나이저 기준 토큰 수를 과금 호출 없이 돌려주는데, 출력, 추론 토큰과 함수가 덧붙이는 지시문, 이미지 같은 비텍스트 입력은 빠진 하한값이에요.
  • 작은 샘플 실행으로 실제 입력 대 출력 비율을 재고 그 값으로 쿼터를 정합니다.
  • 함수가 max_output_tokens를 받으면 출력 길이 상한을 걸어요. 출력 토큰 단가가 더 높습니다.
  • 모델마다 단가가 다르면 모델별로 예산을 잡거나 단가를 섞어 계산하세요.

원문 예시는 Gemini 3.1 Flash-Lite로 하루 약 100달러를 맞추는 계산입니다. BigQuery는 배치로 처리해 50% 할인이 적용되고, 입력 100만 토큰당 0.125달러, 출력 100만 토큰당 0.75달러가 기준이에요. 샘플 실행의 입력 대 출력 비율을 100:1로 놓고 풀면 하루 입력 약 7억 5,400만 토큰, 출력 약 754만 토큰이 나옵니다. 이 값을 AI input tokens per day, AI output tokens per day에 넣으면 프로젝트가 하루 100달러 근처에서 멈춰요.

토큰 쿼터와 결제 한도의 차이

토큰 쿼터는 AI 전용 예방 장치로, 쿼리 실행 중 토큰 사용량을 추적하다 한도 근처에서 작업을 멈춥니다. Cloud Billing 지출 한도는 프로젝트와 서비스 단위로 금액을 기준 삼는 넓은 안전망이에요. 집행이 즉각적이지 않아 일부 초과 비용이 발생할 수 있습니다. 원문은 토큰 쿼터를 1차 방어선으로, 지출 한도를 프로젝트 전체의 안전망으로 함께 쓰라고 권해요.

자주 묻는 질문

BigQuery 생성형 AI 함수 비용은 어떻게 관리하나요?

IAM 쿼터 체계의 일일 토큰 쿼터 4종으로 관리해요. 프로젝트 단위와 사용자 단위로 입력, 출력 토큰 한도를 설정하고, 콘솔의 Quotas & System Limits에서 한도 조정과 사용량 확인을 할 수 있습니다.

쿼터를 초과하면 쿼리는 어떻게 되나요?

쿼리 시작 전에 이미 소진돼 있으면 QuotaExceeded 오류로 거부됩니다. 실행 중 소진되면 새 LLM 호출이 멈추는데, AI.IF 같은 함수는 부분 결과를 돌려주거나 실패하고 AI.GENERATE 같은 범용 함수는 건너뛴 행의 status 필드에 오류를 남겨요.

쿼터 한도를 바꾸려면 어떤 권한이 필요한가요?

Owner, Editor, Quota Administrator, Service Usage Admin 중 하나가 필요합니다. 한도를 줄이는 건 승인 없이 즉시 적용되고, 늘리는 건 증액 요청을 거쳐요. Cloud Quotas API, gcloud CLI, Terraform으로도 관리할 수 있습니다.

임베딩 함수도 쿼터 대상인가요?

아닙니다. AI.GENERATE_EMBEDDING과 AI.EMBED는 더 저렴한 다른 모델로 돌아가기 때문에 이 쿼터의 적용 대상이 아니에요.

에디터 노트

마케팅과 데이터 팀이 LLM 함수를 SQL에 붙일 때 가장 먼저 막히는 곳이 비용 예측과 내부 승인인데, 사용자별 쿼터와 프로젝트 쿼터로 하루 상한을 명시할 수 있게 돼 승인 문서 쓰기가 한결 쉬워졌어요. 다만 쿼터가 소진되면 AI.GENERATE 계열은 쿼리가 성공하는 채로 일부 행만 비기 때문에, status 필드를 점검하는 후처리가 없으면 결측을 놓칠 수 있습니다. AI.COUNT_TOKENS는 하한값이라 실제 사용량은 샘플 실행으로 따로 재야 해요.

참고 출처 | 원문 보기

태그

용어 풀이
bigquery
구글 클라우드의 서버리스 데이터 웨어하우스
생성형 AI 함수
SQL 안에서 LLM을 호출하는 AI.GENERATE, AI.IF 같은 함수
토큰 쿼터
하루에 쓸 수 있는 입력, 출력 토큰의 상한
AI 비용 관리
AI 사용량 기반 과금을 한도로 통제하는 일
공유

관련 마테크