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 ステートメントの実行が完了する前に中断された場合、そのステートメントによって既に削除されたファイルは復元されません。

mystage という名前の内部または外部ステージで path1/subpath2 パスからすべてのファイルを削除します。

REMOVE @mystage/path1/subpath2;
Copy

orders テーブルのステージからすべてのファイルを削除します。

REMOVE @%orders;
Copy

コマンドの省略形を使用して、現在のユーザーのステージからパターン *jun* に一致するファイルを削除します。

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