REMOVE

외부(외부 클라우드 저장소) 또는 내부(즉, Snowflake) 스테이지에서 파일을 제거합니다.

내부 스테이지의 경우 다음 스테이지 유형이 지원됩니다.

  • 명명된 내부 스테이지

  • 지정된 테이블의 스테이지

  • 현재 사용자의 스테이지

REMOVE는 RM으로 축약할 수 있습니다.

참고 항목:

LIST

구문

REMOVE { internalStage | externalStage } [ PATTERN = '<regex_pattern>' ]
Copy

여기서:

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

필수 매개 변수

internalStage | externalStage

데이터 파일이 스테이징되는 위치를 지정합니다.

@[namespace.]int_stage_name[/path]

파일이 지정된 명명된 내부 스테이지에 있습니다.

@[namespace.]ext_stage_name[/path]

파일이 지정된 명명된 외부 스테이지에 있습니다.

@[namespace.]%table_name[/path]

파일이 지정된 테이블의 스테이지에 있습니다.

@~[/path]

파일이 현재 사용자의 스테이지에 있습니다.

여기서:

  • namespace 는 명명된 내부 스테이지 또는 테이블이 있는 데이터베이스 및/또는 스키마입니다. 데이터베이스와 스키마가 현재 세션 내에서 사용 중인 경우 이는 선택 사항입니다. 그렇지 않은 경우에는 필수입니다.

  • path 는 파일 세트에 대한 액세스를 제한하는 클라우드 저장소 위치에 있는 파일의 선택적 경로로, 대/소문자를 구분합니다(즉, 파일 이름이 공통 문자열로 시작함). 다른 클라우드 저장소 서비스에서는 경로를 접두사 또는 폴더 라고도 합니다.

참고

스테이지 이름 또는 경로가 공백이나 특수 문자를 포함한 경우 이를 작은따옴표로 묶어야 합니다(예: "my stage" 로 명명된 스테이지의 경우 '@"my stage"').

선택적 매개 변수

PATTERN = 'regex_pattern'

제거할 파일을 필터링하기 위한 정규식 패턴을 지정합니다. 이 명령은 지정된 path 의 모든 파일을 나열하고 찾은 각 파일에 정규식 패턴을 적용합니다.

사용법 노트

  • 스테이지의 파일에서 데이터를 로딩하는 경우 데이터가 성공적으로 로딩될 때까지 스테이징된 파일을 제거하지 마십시오. 데이터가 성공적으로 로딩되었는지 확인하려면 COPY_HISTORY 명령을 사용하십시오. STATUS 열을 확인하여 파일의 데이터가 로딩되었는지 확인하십시오. 상태가 Load in progress 인 경우 스테이징된 파일을 제거하면 부분 로드 및 데이터 손실이 발생할 수 있습니다.

  • 외부 스테이지에서 파일을 제거하려면 클라우드 저장소 계정에서 Snowflake에 다음 역할 또는 권한을 부여해야 합니다.

    클라우드 저장소 서비스

    역할 또는 권한

    지침

    Amazon S3

    s3:DeleteObject

    Amazon S3에 대한 보안 액세스 구성하기

    Google Cloud Storage

    storage.objects.delete

    Google Cloud Storage용 통합 구성하기

    Microsoft Azure(Blob 저장소)

    Storage Blob Data Contributor

    데이터를 로드하기 위해 Azure 컨테이너 구성하기

  • 이 명령은 지정된 경로와 일치하는 모든 디렉터리와 파일을 제거합니다. 예를 들어, 다음 문은 mytable 테이블 스테이지의 다음 오브젝트 중 하나와 일치합니다.

    • myobject.csv.gz (파일)

    • myobject (디렉터리)

    • myobject_new (디렉터리)

    rm @%mytable/myobject;
    
    Copy
  • 특정 디렉터리의 모든 파일을 제거하려면 경로의 끝에 슬래시(/)를 포함하십시오. 예:

    rm @%mytable/myobject/;
    
    Copy
  • Snowflake 사용자 스테이지에서 worksheet_data 디렉터리를 제거하지 마십시오. Classic Console 는 이 디렉터리의 Worksheets Worksheet tab 탭에 워크시트의 메타데이터를 저장합니다. 이 디렉터리를 제거하면 복원할 수 없는 워크시트에 대한 액세스가 제거됩니다.

    실수로 삭제되지 않도록 다른 곳에 저장되는 Snowsight 의 워크시트에는 이 예방 조치가 적용되지 않습니다.

  • REMOVE 문의 실행을 완료하기 전에 문이 중단되는 경우 이 문에 의해 이미 제거된 파일은 복원되지 않습니다.

다음과 같이 명명된 내부 또는 외부 스테이지 mystagepath1/subpath2 경로에서 모든 파일을 제거합니다.

REMOVE @mystage/path1/subpath2;
Copy

orders 테이블의 스테이지에서 모든 파일을 제거합니다.

REMOVE @%orders;
Copy

이 명령의 축약된 형식을 사용해 현재 사용자의 스테이지에서 이름이 *jun* 패턴과 일치하는 파일을 제거합니다.

RM @~ pattern='.*jun.*';
Copy