GET

다음 내부 스테이지 유형 중 하나에서 클라이언트 시스템의 로컬 디렉터리나 폴더로 데이터 파일을 다운로드합니다.

  • 명명된 내부 스테이지.

  • 지정된 테이블의 내부 스테이지.

  • 현재 사용자의 내부 스테이지.

COPY INTO <위치> 명령을 사용하여 테이블에서 Snowflake 스테이지로 데이터를 언로드한 후 이 명령을 사용하여 데이터 파일을 다운로드할 수 있습니다.

참고 항목:

LIST , PUT , REMOVE , COPY FILES

구문

GET internalStage file://<local_directory_path>
    [ PARALLEL = <integer> ]
    [ PATTERN = '<regex_pattern>'' ]
Copy

여기서:

internalStage ::=
    @[<namespace>.]<int_stage_name>[/<path>]
  | @[<namespace>.]%<table_name>[/<path>]
  | @~[/<path>]
Copy

필수 매개 변수

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";
      
      Copy
  • 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/;
Copy

현재 사용자에 대한 스테이지의 myfiles 경로에서 파일을 (Linux 또는 macOS 환경에 있는) /tmp/data 로컬 디렉터리에 다운로드합니다.

GET @~/myfiles file:///tmp/data/;
Copy