Database는 데이터를 논리적으로 그룹화하고
Schema는 데이터를 구성한다.
그리고 이 둘은 Name Space 를 구성한다.
영구 데이터베이스
- Default 생성
- Time Travel : 최소 0일 - 최대 90일
- 90일까지 확장하려면
Enterprise Edition
- Fail-Safe : 7일 제공
- Snowflake 직원만 복구 가능
임시 데이터베이스
- Time Travel : 최대 1일
- No Fail-Safe
일시 DB 생성해보기
use role sysadmin;
create or replace warehouse test_wh
with warehouse_size = xsmall;
use warehouse test_wh;
create or replace transient database test_db
comment = "일시 DB 생성";
일시 DB 생성해보기
create or replace transient database test_db_eter
comment = "영구 DB 생성";
show databases;
영구 데이터베이스만 1일 초과로 변경할 수 있다.
alter database test_db_eter
set data_retention_time_in_days = 10;
영구 DB에서 진행하기
use role sysadmin;
use database test_db_eter;
create or replace schema banking;
show schemas;
DB의 Time Travel과 연동됨을 확인
Snowflake에서 생성된 모든 데이터베이스에 포함
데이터 사전
데이터베이스 내의
객체와 역할과 같은 계정 수준 객체에 대한 메타데이터 정보 포함
APPLICABLE_ROLES
DATABASES
ENABLED_ROLES
INFORMATION_SCHEMA_CATALOG_NAME
LOAD_HISTORY
COPY INTO <table>
명령어를 사용하여 테이블에 로딩된 각 파일에 대해 하나의 행을 표시하고 snowpipe
를 사용하여 로딩된 데이터를 제외하고 지난 14일 동안 로딩된 모든 데이터 이력을 봔한한다.REPLICATION_DATABASES
주 용도는 시간 경과에 따라 계정의 각 WH에서 사용한 크레딧 추적
use role accountadmin;
use warehouse test_wh;
use database snowflake;
use schema ACCOUNT_USAGE;
select start_time::date as USAGE_DATE, WAREHOUSE_NAME, SUM(credits_used) as TOTAL_CREDITS_CONSUMED
from warehouse_metering_history
where start_time >= date_trunc(Month, current_date)
group by 1,2
order by 2,1;
INFORMATION_SCHEMA와 유사하지만 3가지 차이점
SNOWFLAKE DB ACCOUNT_USAGE Schema
에는 삭제된 객체에 대한 레코드가 포함되지만,
INFORMATION_SCHEMA
에는 포함되지 않는다.
ACCOUNT_USAGE
는 1년 동안 과거 데이터 유지
INFORMATION_SCHEMA
는 7일 ~ 6개월
INFORMATION_SCHEMA
는 대부분 대기 시간이 없다.
ACCOUNT_USAGE
는 45분 ~ 3시간
모든 Snowflake 데이터는 Table에 저장된다.
use role sysadmin;
use database test_db_eter;
use schema banking;
create or replace table test_1
(Cust_Acc int, Amount int, trans_ts timestamp);