Snowflake 스테이지로 언로딩하기
Snowflake 스테이지로 언로딩하기
이 주제 집합은 COPY 명령으로 테이블에서 내부(즉 Snowflake) 스테이지로 데이터를 언로딩하는 방법을 설명해요. 그런 다음 언로딩된 데이터 파일을 로컬 파일 시스템으로 다운로드할 수 있어요.
본문
로컬 파일 시스템으로 데이터를 언로딩하는 것은 두 단계로 수행돼요.
1단계: COPY INTO <location> 명령으로 Snowflake 데이터베이스 테이블의 데이터를 Snowflake 스테이지의 파일 하나 이상으로 복사해요. SQL 문에서 파일이 기록될 스테이지(명명된 스테이지 또는 테이블/유저 스테이지)를 지정해요. 어떤 스테이지를 사용하든, 명령을 수동으로 또는 스크립트로 실행한다면 이 단계는 세션에 대해 실행 중인 현재 가상 웨어하우스가 필요해요. 웨어하우스는 테이블의 행을 기록하는 컴퓨팅 리소스를 제공해요.
2단계: GET 명령으로 데이터 파일을 로컬 파일 시스템에 다운로드해요.
팁: 이 주제 집합의 지침은 언로딩할 데이터 파일 형식 문서를 읽고, 원한다면 명명된 파일 형식을 만들었다고 가정해요. 시작하기 전에 모범 사례·팁·기타 지침을 위해 데이터 언로딩 고려 사항도 읽어 보는 것이 좋아요.
데이터 언로딩하기
이 섹션은 테이블 데이터를 명명된 내부 스테이지, 테이블 스테이지, 또는 유저 스테이지로 언로딩하는 방법을 제공해요.
명명된 내부 스테이지로 데이터 언로딩하기
내부 스테이지는 데이터 언로딩에 가장 큰 유연성을 제공하는 명명된 데이터베이스 객체예요. 데이터베이스 객체이므로 명명된 스테이지에 대한 권한을 어떤 역할에든 부여할 수 있어요. 웹 인터페이스 또는 SQL로 내부 스테이지를 만들 수 있어요.
- Snowsight: 탐색 메뉴에서 Catalog » Explorer를 선택한 뒤
<db_name> » Stages를 선택해요. - SQL:
CREATE STAGE
명명된 스테이지 만들기:
다음 예시는 파일 형식 문서에서 만든 my_csv_unload_format라는 명명된 파일 형식 객체를 참조하는 내부 스테이지를 만들어요.
CREATE OR REPLACE STAGE my_unload_stage
FILE_FORMAT = my_csv_unload_format;
명명된 스테이지로 데이터 언로딩하기:
COPY INTO <location>명령으로 테이블의 모든 행을my_unload_stage스테이지의 파일 하나 이상으로 언로딩해요. 이 문은 스테이지에서 파일을 정리하기 위해 언로딩된 파일 앞에unload/를 붙여요. 예:COPY INTO @mystage/unload/ from mytable;@문자만으로 명명된 스테이지를 식별한다는 점을 기억해요.참고: 파일 형식 옵션이 스테이지에 대해 정의됐기 때문에 COPY 명령에서 같은 파일 형식 옵션을 지정할 필요가 없어요.
LIST명령으로 스테이지에 언로딩된 파일 목록을 확인해요.LIST @mystage; +----------------------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |----------------------------------+------+----------------------------------+-------------------------------| | mystage/unload/data_0_0_0.csv.gz | 112 | 6f77daba007a643bdff4eae10de5bed3 | Mon, 11 Sep 2017 18:13:07 GMT | +----------------------------------+------+----------------------------------+-------------------------------+GET명령으로 테이블 스테이지에서 생성된 파일을 로컬 머신으로 다운로드해요. 다음 예시는 파일을data/unload디렉터리로 다운로드해요.-- Linux 또는 macOS GET @mystage/unload/data_0_0_0.csv.gz file:///data/unload;-- Windows GET @mystage/unload/data_0_0_0.csv.gz file://C:\data\unload;
테이블 스테이지로 데이터 언로딩하기
COPY INTO <location>명령으로 테이블의 모든 행을 테이블의 스테이지에 있는 파일 하나 이상으로 언로딩해요. 다음 예시는 파일 형식 문서에서 만든 명명된my_csv_unload_format파일 형식을 사용해 데이터 파일을 스테이지로 언로딩해요. 이 문은 스테이지에서 파일을 정리하기 위해 언로딩된 파일 앞에unload/를 붙여요. 예:COPY INTO @%mytable/unload/ from mytable FILE_FORMAT = (FORMAT_NAME = 'my_csv_unload_format' COMPRESSION = NONE);@%문자 조합이 테이블 스테이지를 식별한다는 점을 기억해요.LIST명령으로 스테이지에 언로딩된 파일 목록을 확인해요.LIST @%mytable; +-----------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |-----------------------+------+----------------------------------+-------------------------------| | unload/data_0_0_0.csv | 96 | 29918f18bcb35e7b6b628ca41024236c | Mon, 11 Sep 2017 17:45:20 GMT | +-----------------------+------+----------------------------------+-------------------------------+GET명령으로 테이블 스테이지에서 생성된 파일을 로컬 머신으로 다운로드해요. 다음 예시는 파일을data/unload디렉터리로 다운로드해요.-- Linux 또는 macOS GET @%mytable/unload/data_0_0_0.csv file:///data/unload;-- Windows GET @%mytable/unload/data_0_0_0.csv file://C:\data\unload;
유저 스테이지로 데이터 언로딩하기
COPY INTO <location>명령으로 테이블의 모든 행을 당신의 스테이지에 있는 파일 하나 이상으로 언로딩해요. 다음 예시는 파일 형식 문서에서 만든 명명된my_csv_unload_format파일 형식을 사용해 데이터 파일을 유저 스테이지로 언로딩해요. 이 문은 스테이지에서 파일을 정리하기 위해 언로딩된 파일 앞에unload/를 붙여요. 예:COPY INTO @~/unload/ from mytable FILE_FORMAT = (FORMAT_NAME = 'my_csv_unload_format' COMPRESSION = NONE);@~문자 조합이 유저 스테이지를 식별한다는 점을 기억해요.LIST명령으로 스테이지에 언로딩된 파일 목록을 확인해요.LIST @~; +-----------------------+------+----------------------------------+-------------------------------+ | name | size | md5 | last_modified | |-----------------------+------+----------------------------------+-------------------------------| | unload/data_0_0_0.csv | 96 | 94a306c55733b95a0887511ff355936b | Mon, 11 Sep 2017 17:25:07 GMT | +-----------------------+------+----------------------------------+-------------------------------+GET명령으로 스테이지에서 생성된 파일을 로컬 머신으로 다운로드해요. 다음 예시는 파일을data/unload디렉터리로 다운로드해요.-- Linux 또는 macOS GET @~/unload/data_0_0_0.csv file:///data/unload;-- Windows GET @~/unload/data_0_0_0.csv file://C:\data\unload;
언로딩된 데이터 파일 관리하기
스테이지된 파일은 사용을 마친 뒤 REMOVE 명령으로 Snowflake 스테이지에서 삭제할 수 있어요. 파일을 제거하면 COPY INTO <table> 명령이 스테이지의 기존 파일이 이미 로딩됐는지 확인하기 위해 스캔해야 하는 파일 수가 줄어들어 데이터 로딩 성능이 향상돼요.