[Snowflake] Prac 2 - Database Objects

CHAN LIM·2024년 2월 5일
0

Snowflake

목록 보기
5/18


Database는 데이터를 논리적으로 그룹화하고
Schema는 데이터를 구성한다.

그리고 이 둘은 Name Space 를 구성한다.


Database

유형

영구 데이터베이스

  • Default 생성
  • Time Travel : 최소 0일 - 최대 90일
    • 90일까지 확장하려면 Enterprise Edition
  • Fail-Safe : 7일 제공
    • Snowflake 직원만 복구 가능

임시 데이터베이스

  • Time Travel : 최대 1일
  • No Fail-Safe

DB 생성

일시 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;


Time Travel 변경

영구 데이터베이스만 1일 초과로 변경할 수 있다.

alter database test_db_eter
set data_retention_time_in_days = 10;



Schema

영구 DB에서 진행하기

use role sysadmin;
use database test_db_eter;
create or replace schema banking;

show schemas;

DB의 Time Travel과 연동됨을 확인


INFORMATION_SCHEMA

Snowflake에서 생성된 모든 데이터베이스에 포함

데이터 사전

데이터베이스 내의
객체와 역할과 같은 계정 수준 객체에 대한 메타데이터 정보 포함


Account_view의 주요 사항

  • APPLICABLE_ROLES

  • DATABASES

  • ENABLED_ROLES

  • INFORMATION_SCHEMA_CATALOG_NAME

  • LOAD_HISTORY

    • COPY INTO <table> 명령어를 사용하여 테이블에 로딩된 각 파일에 대해 하나의 행을 표시하고 snowpipe를 사용하여 로딩된 데이터를 제외하고 지난 14일 동안 로딩된 모든 데이터 이력을 봔한한다.
  • REPLICATION_DATABASES


Database_view의 주요 사항

  • COLUMNS
  • EXTERNAL_TABLES
  • FILE_FORMATS
  • FUNCTIONS
  • OBJECTS_PRIVILEGES
  • PIPES
  • PROCEDURES
  • REFERENTIAL_CONSTRAINTS
  • SCHEMAS
  • SEQUENCES
  • STAGES
  • TABLE_CONSTRAINTS
  • TABLE_PRIVILEGES
  • TABLE_STORAGE_METRICS
  • TABLE
  • USAGE_PRIVILEGES
  • VIEWS

ACCOUNT_USAGE SCHEMA

주 용도는 시간 경과에 따라 계정의 각 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시간


Table

모든 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);


Table 유형


profile
클라우드, 데이터, DevOps 엔지니어 지향 || 글보단 사진 지향

0개의 댓글