[Snowflake] Object Model

차지예·2026년 5월 7일

Snowflake

목록 보기
6/49
post-thumbnail

전체 계층 한눈에 보기

Organisation                         ← 최상위
    └── Account                      ← 서비스 사용 단위
            ├── Network Policy
            ├── User
            ├── Role                  Account-level Objects
            ├── Warehouse
            ├── Share
            ├── Resource Monitor
            └── Database
                    └── Schema
                            ├── Table
                            ├── View
                            ├── Stage
                            ├── Pipe  Schema-level Objects
                            ├── Stream
                            ├── Task
                            ├── Stored Procedure
                            └── Function (UDF)

Organisation & Account

객체한 줄 요약
Organisation최상위 컨테이너. 여러 Account를 통합 관리
Account실제 서비스 사용 단위. 모든 리소스는 Account 안에 존재

Account-level Objects

Account 바로 아래에 존재하는 객체들

객체한 줄 요약핵심 키워드
Network PolicyIP 허용/차단으로 접근 제어보안
User로그인 주체 (사람 또는 서비스)인증
Role권한 묶음. RBAC의 핵심권한 관리
DatabaseSchema를 담는 논리적 컨테이너스토리지
Warehouse쿼리 실행 컴퓨팅 리소스. 사용 중에만 크레딧 소모컴퓨팅
Share다른 Account와 데이터 공유데이터 공유
Resource Monitor크레딧 사용량 모니터링 및 임계값 초과 시 알림/정지비용 관리

Database & Schema

객체한 줄 요약
DatabaseSchema의 논리적 그룹
SchemaTable, View 등 실제 객체들의 네임스페이스. 기본으로 PUBLIC, INFORMATION_SCHEMA 자동 생성

Schema-level Objects

🗂️ Table

실제 데이터가 저장되는 핵심 객체

유형Time TravelFail-safe특징
Permanent최대 90일✅ 7일기본 테이블. 가장 강한 보호
Transient최대 1일비용 절감. Fail-safe 없음
Temporary최대 1일세션 종료 시 자동 삭제
Iceberg제한적오픈 포맷. 외부 카탈로그 연동 가능
External외부 스토리지(S3 등) 직접 쿼리
Dynamic선언적 자동 증분 갱신

⭐ = COF-C03 신규 추가
Time Travel 기간: Standard 에디션 최대 1일 / Enterprise 이상 최대 90일


👁️ View

유형특징
StandardSELECT 쿼리를 가상 테이블로. 매 조회 시 실행
Materialized결과를 물리적 저장 → 빠름. 스토리지 추가 소모
SecureDDL 정의 숨김 → Data Sharing 시 사용

📦 Stage

데이터 로드/언로드 시 사용하는 임시 저장 위치

유형특징
Named InternalCREATE STAGE로 명시적 생성. Schema-level 객체
Named ExternalS3 / Azure Blob / GCS 등 외부 스토리지 연결
User Stage (@~)사용자마다 자동 할당. 별도 생성 불필요
Table Stage (@%테이블명)테이블마다 자동 할당. 별도 생성 불필요

🔄 Pipe / Stream / Task

객체역할핵심 키워드
PipeStage에 파일 업로드 시 자동 수집 (Snowpipe)파일 단위, 준실시간
Stream테이블 변경(INSERT/UPDATE/DELETE) 추적CDC, 변경 감지
Taskcron 일정 또는 이벤트 기반으로 SQL 자동 실행스케줄러, 자동화

💡 Stream + Task 조합 → ELT 파이프라인 자동화의 핵심 패턴


⚙️ Stored Procedure vs Function

항목Stored ProcedureFunction (UDF)
DML 실행✅ 가능❌ 불가
SELECT 내 호출❌ 불가✅ 가능
반환값단일 값 또는 테이블단일 값(Scalar) 또는 테이블(UDTF)
지원 언어SQL, JS, Python, Java, ScalaSQL, JS, Python, Java
용도비즈니스 로직 캡슐화재사용 가능한 계산 로직

⭐ 비교 정리

비교구분 포인트
Permanent vs Transient vs TemporaryFail-safe 유무 → Permanent만 있음 / 세션 삭제 → Temporary만
Standard vs Materialized ViewMaterialized = 물리적 저장 → 빠름
Standard vs Secure ViewSecure = DDL 숨김 → Data Sharing 필수
Internal vs External Stage저장 위치: Snowflake 내부 vs 외부(S3 등)
Pipe vs StreamPipe = 파일 수집 / Stream = 테이블 변경 추적
Stored Procedure vs FunctionProcedure = DML 가능 / Function = SELECT 안에서 호출
Iceberg vs External TableIceberg = 오픈 포맷 + 외부 카탈로그 / External = 외부 스토리지 직접 쿼리

📌 참고 공식 문서

0개의 댓글