개요
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