GET

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

  • 명명된 내부 스테이지.

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

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

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

GET 명령 사용에 대한 자세한 내용은 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를 작은따옴표로 묶어야 합니다. 드라이브와 경로 구분 기호는 URIs(예: 'file://C:/Users/%Username%/Data 2025-01')로 묶인 슬래시(/)입니다.

참고

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 (ODBC 드라이버 버전 2.21.5 이상 사용).

  • Microsoft Azure(ODBC 드라이버 버전 2.20.2 이상 사용).

  • 어느 Snowflake 웹 인터페이스에서든 Worksheets 워크시트 탭 페이지에서는 이 명령을 실행할 수 없습니다. 대신 SnowSQL 클라이언트를 사용하여 데이터 파일을 다운로드하거나 특정 Snowflake 클라이언트에 대한 설명서를 참조해 이 명령에 대한 지원을 확인하십시오.

  • 이 명령은 파일의 이름을 바꾸지 않습니다.

  • 다운로드한 파일은 파일이 업로드되거나(PUT 사용) 테이블에서 언로딩될 때(COPY INTO <위치> 사용) 파일 암호화에 사용된 것과 같은 키를 사용하여 자동으로 암호 해독됩니다.

  • PUTGET 명령의 경우 QUERY_HISTORY 에서 success 의 EXECUTION_STATUS가 데이터 파일이 성공적으로 업로드되거나 다운로드되었다는 것을 의미하지 않습니다. 대신, 이 상태는 Snowflake가 파일 전송을 진행하기 위한 승인을 받았음을 나타냅니다.

mytable 테이블에 대한 스테이지의 모든 파일을 (Linux 또는 macOS 환경에 있는) /tmp/data 로컬 디렉터리에 다운로드합니다.

GET @%mytable file:///tmp/data/;
Copy

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

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

추가적인 예를 보려면 Snowflake 스테이지로 언로드하기 섹션을 참조하십시오.