GET¶
다음 내부 스테이지 유형 중 하나에서 클라이언트 시스템의 로컬 디렉터리나 폴더로 데이터 파일을 다운로드합니다.
명명된 내부 스테이지.
지정된 테이블의 내부 스테이지.
현재 사용자의 내부 스테이지.
COPY INTO <위치> 명령을 사용하여 테이블에서 Snowflake 스테이지로 데이터를 언로드한 후 이 명령을 사용하여 데이터 파일을 다운로드할 수 있습니다.
- 참고 항목:
LIST , PUT , REMOVE , COPY FILES
구문¶
GET internalStage file://<local_directory_path>
[ PARALLEL = <integer> ]
[ PATTERN = '<regex_pattern>'' ]
여기서:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]
필수 매개 변수¶
internalStage
Snowflake에서 파일을 다운로딩할 원본 위치를 지정합니다.
@[namespace.]int_stage_name[/path]
파일이 지정된 명명된 내부 스테이지에서 다운로드됩니다.
@[namespace.]%table_name[/path]
파일이 지정된 테이블의 스테이지에서 다운로드됩니다.
@~[/path]
파일이 현재 사용자의 스테이지에서 다운로드됩니다.
여기서:
namespace
는 명명된 내부 스테이지 또는 테이블이 있는 데이터베이스 및/또는 스키마입니다. 데이터베이스와 스키마가 현재 세션 내에서 사용 중인 경우 이는 선택 사항입니다. 그렇지 않은 경우에는 필수입니다.path
는 파일 세트에 대한 액세스를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.path
가 지정되어 있지만 경로에 명시적으로 명명된 파일이 없는 경우, 경로의 모든 데이터 파일이 다운로드됩니다.
참고
스테이지 이름 또는 경로가 공백이나 특수 문자를 포함한 경우 이를 작은따옴표로 묶어야 합니다(예:
"my stage"
로 명명된 스테이지의 경우'@"my stage"'
).file://local_directory_path
파일이 다운로드되는 클라이언트 컴퓨터의 로컬 디렉터리 경로를 지정합니다.
- Linux/macOS:
경로에 초기 슬래시를 포함해야 합니다(예:
file:///tmp/load
).디렉터리 경로에 특수 문자가 포함된 경우 전체 파일 URI를 작은따옴표로 묶어야 합니다.
- Windows:
경로에 드라이브와 백슬래시를 포함해야 합니다(예:
file://C:tempload
).디렉터리 경로에 특수 문자가 포함된 경우 전체 파일 URI를 작은따옴표로 묶어야 합니다. 드라이브 및 경로 구분 기호는 둘러싼 URI 안에 있는 슬래시(
/
)입니다(예:load data
라는 디렉터리를 포함하는 Windows 경로의 경우'file://C:/temp/load data'
).
참고
JDBC 드라이버 또는 ODBC 드라이버 를 사용하는 경우를 제외하고 파일 이름을 경로의 일부로 지정하면 GET 명령 실행 시 오류가 반환됩니다. 두 드라이버 중 하나를 사용할 때 파일 이름을 지정하면 드라이버는 파일 이름을 디렉터리 경로의 일부로 취급하고 지정된 파일 이름으로 하위 디렉터리를 만듭니다.
예를 들어,
file:///tmp/load/file.csv
를 지정하면 JDBC 또는 ODBC 드라이버가/tmp/load/
경로 아래에file.csv/
라는 하위 디렉터리를 생성합니다. 그런 다음 GET 명령은 스테이징된 파일을 이 새 하위 디렉터리에 다운로드합니다.
선택적 매개 변수¶
PARALLEL = integer
파일 다운로드에 사용할 스레드 수를 지정합니다. 다운로드를 위한 세분성 단위는 한 개의 파일입니다.
스레드 수를 늘리면 큰 파일을 다운로딩할 때 성능을 높일 수 있습니다.
지원되는 값:
1
(병렬 처리 없음)에서99
(파일 다운로드에 99개의 스레드 사용)까지의 모든 정수 값.기본값:
10
PATTERN = 'regex_pattern'
다운로딩할 파일을 필터링하기 위한 정규식 패턴을 지정합니다. 이 명령은 지정된
path
의 모든 파일을 나열하고 찾은 각 파일에 정규식 패턴을 적용합니다.기본값: 값 없음(지정된 스테이지의 모든 파일이 다운로드됨)
사용법 노트¶
GET은 다음 작업을 지원하지 않습니다.
외부 스테이지에서 파일 다운로드하기. 외부 스테이지에서 파일을 다운로드하려면 클라우드 서비스에서 제공하는 유틸리티를 사용하십시오.
서로 다른 디렉터리 경로를 사용하여 여러 파일을 다운로드하기. 이 명령은 파일을 클라이언트 시스템으로 전송할 때 스테이지 디렉터리 구조를 보존하지 않습니다.
예를 들어, 다음 GET 문은 스테이지의 서로 다른 하위 디렉터리에 있는
tmp.parquet
라는 이름을 가진 여러 파일을 다운로드할 수 없으므로 오류를 반환합니다.GET @my_int_stage my_target_path PATTERN = "tmp.parquet";
ODBC 드라이버 는 다음 플랫폼에 호스트된 Snowflake 계정으로 GET을 지원합니다.
Amazon Web Services(ODBC 드라이버 버전 2.17.5 이상 사용).
Google Cloud Platform(ODBC 드라이버 버전 2.21.5 이상 사용).
Microsoft Azure(ODBC 드라이버 버전 2.20.2 이상 사용).
어느 Snowflake 웹 인터페이스에서든 Worksheets 페이지에서는 이 명령을 실행할 수 없습니다. 대신 SnowSQL 클라이언트를 사용하여 데이터 파일을 다운로드하거나 특정 Snowflake 클라이언트에 대한 설명서를 참조해 이 명령에 대한 지원을 확인하십시오.
이 명령은 파일의 이름을 바꾸지 않습니다.
다운로드한 파일은 파일이 업로드되거나(PUT 사용) 테이블에서 언로딩될 때(COPY INTO <위치> 사용) 파일 암호화에 사용된 것과 같은 키를 사용하여 자동으로 암호 해독됩니다.
예¶
mytable
테이블에 대한 스테이지의 모든 파일을 (Linux 또는 macOS 환경에 있는) /tmp/data
로컬 디렉터리에 다운로드합니다.
GET @%mytable file:///tmp/data/;
현재 사용자에 대한 스테이지의 myfiles
경로에서 파일을 (Linux 또는 macOS 환경에 있는) /tmp/data
로컬 디렉터리에 다운로드합니다.
GET @~/myfiles file:///tmp/data/;