Snowflake

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

비번변경 2024. 8. 2. 12:20

개요

2024.07.09-[Snowflake] COPY INTO - 외부 데이터 로드에서 스테이지로 접근할 수 있는 데이터를 Snowflake 데이터베이스 테이블로 로드하여 작업을 수행해 왔다. 그런데 Snowflake에서 외부 스테이지의 데이터를 처리하기 위해서 항상 데이터를 로드해야 하는 것은 아니다.

이번 글에서는 FROM 절에서 스테이지 내 파일을 지정하여 데이터 저장 없이 데이터를 쿼리하는 방법을 적어둔다.

 

 

$1

Snowflake에서 $는 열을 의미한다. 예로 들어 $1은 첫 번째 열, $2는 두 번째 열을 의미한다.

때문에 아래와 같이 두 개 열을 가진 테이블은

다음 쿼리로 조회할 수 있다.

SELECT $1, $2
FROM garden_plants.flowers.vegetable_details_soil_type;

 

 

FROM

FROM 절에는 데이터베이스 테이블 뿐만 아니라 스테이지로 접근할 수 있는 파일도 지정할 수 있다.

추가로 데이터 파싱에 사용할 File format을 지정하여 쿼리 하면 다음과 같이 쿼리 할 수 있다.

SELECT $1, $2, $3
FROM @util_db.public.like_a_window_into_an_s3_bucket/LU_SOIL_TYPE.tsv
(file_format => garden_plants.veggies.L8_CHALLENGE_FF );

 

 

참고 문서

https://stackoverflow.com/questions/75645755/exploring-data-loaded-to-an-internal-stage-in-snowflake

https://docs.snowflake.com/en/sql-reference/constructs/from