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 全体を一重引用符で囲む必要があります。ドライブとパスの区切り文字は、囲まれた URIs にあるスラッシュ(/)であることに注意してください(例: 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ファイルです。

スレッド数を増やすと、大きなファイルをダウンロードするときのパフォーマンスが改善します。

サポートしている値: 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 Driver Version 2.20.2以降を使用)。

  • コマンドは、いずれのSnowflakeウェブインターフェイスの Worksheets ワークシートタブ ページからも実行できません。代わりに、 SnowSQL クライアントを使用してデータファイルをダウンロードするか、特定のSnowflakeクライアントのドキュメントを確認して、このコマンドのサポートを検証します。

  • コマンドはファイルの名前を変更しません。

  • ダウンロードしたファイルは、アップロード( PUT を使用)またはテーブルからアンロード( COPY INTO <場所> を使用)したときにファイルの暗号化に使用したのと同じキーを使用して自動的に復号化されます。

mytable テーブルのステージにあるすべてのファイルを /tmp/data ローカルディレクトリにダウンロードします(Linuxまたは macOS 環境)。

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

現在のユーザーのステージにある myfiles パスから、ファイルを /tmp/data ローカルディレクトリ(Linuxまたは macOS 環境)にダウンロードします。

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