Snowflake 14

[Snowflake] JSON 구조 데이터 쿼리

개요지금까지 Snowflake 상에서 CSV 데이터를 주로 다루었다. 이번 글에서는 JSON 형식으로 반구조화된 데어티를 쿼리 하는 방법에 대해 적어둔다.  테스트 데이터 저장author_with_header.json 파일을 Snowflake 데이터로 저장해보자. 이를 위해서는 VARIENT라는 형식의 컬럼을 포함하는 테이블을 생성해주어야 한다.CREATE TABLE LIBRARY_CARD_CATALOG.PUBLIC.AUTHOR_INGEST_JSON_2( RAW_AUTHOR VARIANT);VARIENT 형식은 object나 array 등을 포함해 다른 유형의 값을 저장할 때 사용하는 데이터 타입이다. 압축되지 않은 데이터 기준으로 최대 16MB까지의 데이터를 저장할 수 있다. 테이블을 생성했다면 JS..

Snowflake 2024.08.06

[Snowflake] Sequence

개요이번 글에서는 Snowflake에서의 Sequence에 대해서 적어둔다.  Sequence일종의 카운터로 전역적인 수준에서 고유한 값을 생성한다. 따라서 테이블 행에 대한 고유 ID를 만드는 데 사용될 수 있다. 다만 일반적으로 Sequence는 1씩 연속적으로 증가하는 방향으로 동작하는데, Snowflake에서는 연속적인 번호를 생성하지 않을 수도 있다.   생성Sequence는 CREATE 문으로 생성할 수 있다. 시작값과 증가 수준 등을 지정하여 생성한다.CREATE OR REPLACE SEQUENCE garden_plants.flowers.SEQ_AUTHOR_UID start = 1 -- 시작 값 increment = 1 -- 증가 수준 order -- 연속적인 증가 co..

Snowflake 2024.08.05

[Snowflake] 데이터 로드 없이 스테이징 파일 쿼리하기

개요2024.07.09-[Snowflake] COPY INTO - 외부 데이터 로드에서 스테이지로 접근할 수 있는 데이터를 Snowflake 데이터베이스 테이블로 로드하여 작업을 수행해 왔다. 그런데 Snowflake에서 외부 스테이지의 데이터를 처리하기 위해서 항상 데이터를 로드해야 하는 것은 아니다.이번 글에서는 FROM 절에서 스테이지 내 파일을 지정하여 데이터 저장 없이 데이터를 쿼리하는 방법을 적어둔다.  $1Snowflake에서 $는 열을 의미한다. 예로 들어 $1은 첫 번째 열, $2는 두 번째 열을 의미한다.때문에 아래와 같이 두 개 열을 가진 테이블은다음 쿼리로 조회할 수 있다.SELECT $1, $2FROM garden_plants.flowers.vegetable_details_soil..

Snowflake 2024.08.02

[Snowflake] COPY INTO - 외부 데이터 로드

개요Snowflake에서 외부 데이터를 다루기 위한 객체로 2024.07.05-[Snowflake] FILE FORMAT, 2024.07.08-[Snowflake] Stage에 대해서 알아보았다. 이번 글에서는 두 객체를 사용해 실제로 외부 데이터를 로드하는 COPY INTO 문에 대해서 적어둔다.  COPY INTOCOPY INTO 구문은 스테이징 된 파일에서 테이블로 데이터를 로드하는 구문으로, 로드하는 파일은 내부 스테이지, 외부 스테이지, 외부 저장소(S3, Google Cloud Storage, Azure) 등에 위치해 있어야 한다.COPY INTO 구문은 일반적으로 데이터를 저장할 테이블, 데이터로 접근할 때 사용하는 Stage, 로드할 데이터 파일, 사용할 file format을 지정하여 사..

Snowflake 2024.08.01

[Snowflake] Stage

개요Snowflake는 여러 클라우드에 저장되어 있는 데이터를 Snowflake 시스템에 로드하여 데이터 작업을 수행할 수 있게 한다. 이번 글에서는 클라우드에 저장된 데이터에 접근할 수 있게 하는 Stage에 대해 적어둔다.  Stage파일 데이터를 테이블에 로드할 수 있도록 데이터 파일이 저장되는 위치를 지정하는 Snowflake 객체로, 내부 스테이지와 외부 스테이지로 구분된다.내부 스테이지 : Snowflake 내에서 데이터 파일을 내부적으로 저장한다.외부 스테이지 : AWS S3, GCP 버킷, Azure 컨테이너와 같이 Snowflake 외부에 저장된 데이터 파일을 참조한다Stage는 데이터가 저장되어 있는 공간이 아니라, Sowflake가 데이터에 저장되어 있는 공간에 접근할 수 있는 인터페..

Snowflake 2024.07.31

[Snowflake] FILE FORMAT

개요2024.07.04-[Snowflake] CSV 파일 로드에서 CSV 파일을 읽어 들이면서 어떤 방식으로 읽어 들일지 결정했었다. 이렇게 파일을 읽어 들일 형식을 Snowflake에서는 FILE FORMAT이라고 하는데, 이번 글에서는 FILE FORMAT과 관련된 부분은 정리해 본다.  FILE FORMATFILE FORMAT은 파일에서 테이블로 데이터를 로드할 때 파일의 형식을 설명하고 파일의 데이터를 해석하고 처리하는 방법을 지정하는 객체이다.Snowflake에서는 CSV, JSON, AVRO, ORC, PARQUET, XML 형식의 데이터에 대한 FILE FORMAT을 지정할 수 있다. 파일 확장자에 따라 지정할 수 있는 속성이 달라 속성과 관련해서는 공식 문서를 참조하는 것이 좋겠다.관련 문..

Snowflake 2024.07.30

[Snowflake] CSV 파일 로드

개요CSV 파일의 데이터를 Snowflake 상에서 다루려고 한다. 이번 글에서는 CSV 파일을 Snowflake 데이터베이스 테이블에 저장하는 방법을 적어둔다.  CSV 파일 로드예시로 아래와 같은 형식의 파일을 로드해 보자.Plant Name,Rooting DepthArtichoke,DArugula,SAsparagus,D"Beans, bush",M"Beans, lima (bush)",D"Beans, pole",MBeets,MBroccoli,SBrussel sprouts,S  1. 테이블 생성워크시트를 통해 로드할 데이터의 컬럼을 포함하는 테이블을 생성한다.create table garden_plants.veggies.vegetable_details ( plant_name varchar(25) ..

Snowflake 2024.07.29

[Snowflake] 가상 웨어하우스

개요2024.06.20-[Snowflake] 테이블에서 워크시트 상에서 SQL을 수행하여 테이블을 생성하고 데이터를 추가해 보았다.이번 글에서는 이러한 데이터 처리를 수행하는 요소인 가상 웨어하우스에서 간략히 적어둔다.  가상 웨어하우스Snowflake에서 웨어하우스는 데이터를 저장하지 않는다. 대신 데이터를 처리하는 데 사용하는  작업 인력에 해당한다. 즉, 컴퓨팅 리소스 클러스터로 Snowflake에서 SELECT 작업, DML 작업을 수행하기 위해 필요한 CPU, 메모리와 같은 컴퓨팅 리소스를 제공한다. 가상 웨어하우스는 필요에 따라 웨어하우스의 크기를 변경(Scaling Up/Down)하거나, 웨어하우스의 수를 변경(Scaling In/Out)할 수 있다.  Scaling Up/Down가상 웨어하..

Snowflake 2024.07.12

[Snowflake] 테이블

개요2024.06.18-[Snowflake] 데이터베이스, 스키마에서 Snowflake에서 사용하는 데이터베이스와 스키마에 대해서 살펴보았다.이번 글에서는 실제로 데이터를 저장하는 테이블에 대해서 알아본다.   테이블Snowflake의 데이터는 논리적 열과 행으로 구성된 데이터베이스 테이블에 저장된다. 테이블의 물리적 구조에는 마이크로 파티션, 데이터 클러스터링 개념이 사용되는데, 각각의 개념은 다음과 같다. 마이크로 파티션Snowflake 내 데이터가 분할되어 저장되는 단위로, 각 마이크로 파티션에는 50MB에서 500MB 사이 용량의 데이터가 포함된다. Snowflake에서 유지 관리하기 때문에 사용자가 직접 관리할 필요가 없다.마이크로 파티션은 용량이 적어 효율적으로 DML을 수행할 수 있고, 빠르..

Snowflake 2024.07.11

[Snowflake] 역할 전환과 소유권 이전

개요2024.06.17-[Snowflake] 접근 제어에서 Snowflake의 접근 제어 방식에 대해서 정리했는데, 이번 글에서는 실제로 snowflake에서 사용자가 역할을 전환하거나 객체 소유권을 이전하는 방법에 대해 적어둔다.   역할 전환 방법1. 현재 역할 확인홈 인터페이스 왼쪽 하단에 보면 계정명과 현재 사용 중인 역할을 확인할 수 있다. 2. Switch Role 접근계정 정보에서 Switch Role 항목에서 현재 사용할 수 있는 역할의 목록을 확인하고 사용할 역할을 변경할 수 있다. 3. 역할 전환목록에서 전환할 역할을 선택하면 바로 계정 정보가 변경된다.다만 리소스 탐색은 한 번 새로고침해주어야 제대로 보이는 것 같다.   소유권 이전 방법1. 소유권을 이전할 객체 접근이 글에서는 스키..

Snowflake 2024.07.10
1 2