---
title: 모델 참조
description: 모델 파일 이름, 선행 지시문, 린트 정책, 상태, 실패 유형을 참고합니다.
species: reference
---
# 모델 참조

모델은 `models/` 아래의 SQL 파일 1개입니다. 기본 파일 이름이 출력 테이블이고 폴더 경로가 출력 스키마를 제공합니다.

## 선행 지시문

지시문은 파일 앞부분의 주석 헤더에 있어야 합니다. 구문 분석기는 최대 첫 20줄을 검사합니다.

| 지시문 | 의미 |
|---|---|
| `-- name:` | 명시적 표시 이름 |
| `-- schema:` | 명시적 출력 스키마 |
| `-- cadence: manual` | 조직 전체의 반복 실행에서 제외 |
| `-- depends_on: schema.table` | 명시적 그래프 연결 추가 |
| `-- unique_key: column` | 테이블을 대체하지 않고 이 출력 열로 업서트 |
| `-- bigquery` | SQL 문을 BigQuery로 라우팅. 첫 줄이어야 하며 `titan.*` 참조 불가 |
| `-- query-<class>` | 더 큰 메모리 등급으로 실행을 고정. 리소스 오류에서 안내한 경우에만 사용 |
| `-- lint:` | 크기가 제한된 typesql 진단 정책 블록 시작 |

```sql
-- schema: finance
-- cadence: manual
-- depends_on: stripe.charges
-- unique_key: customer_id
-- lint:
--   TS0609: allow

select
  customer as customer_id,
  sum(amount) / 100.0 as revenue
from titan.stripe.charges
where status = 'succeeded' and not _deleted
group by customer
```

## 이름 제약

모델은 연결된 소스가 소유한 스키마에 쓸 수 없습니다. `finance`나 `analytics` 같은 파생 스키마를 선택하세요. 기본 파일 이름을 바꾸면 출력 테이블 이름도 바뀝니다.

## 실행 상태

단계는 대기, 실행 중, 성공, 실패, 건너뜀 상태를 기록합니다. 수동 모델은 반복 실행에서 건너뜁니다. 종속 모델이 실패하면 그 결과에 의존하는 후속 단계는 시작하지 않습니다.

## 일반적인 실패

- 순환 참조나 알 수 없는 명시적 종속성이 있으면 그래프를 거부합니다.
- typesql 오류는 `enforce` 실행을 중단하며 안정적인 코드로 기록됩니다.
- 고유 키 열이 없으면 업서트 구체화를 거부합니다.
- BigQuery로 라우팅되는 모델이 `titan.*`를 참조하면 제출 전에 거부합니다.
- 쿼리 시간 초과나 메모리 예산 소진은 불완전한 테이블을 공개하지 않고 단계를 실패로 처리합니다.
