GET¶
以下の 内部ステージ 型のいずれかから、クライアントマシン上のローカルディレクトリまたはフォルダーにデータファイルをダウンロードします。
内部ステージという名前。
指定されたテーブルの内部ステージ。
現在のユーザーの内部ステージ。
COPY INTO <場所> コマンドを使用してテーブルからSnowflakeステージにデータをアンロードした後、このコマンドを使用してデータファイルをダウンロードできます。
- こちらもご参照ください。
LIST , PUT , REMOVE , COPY FILES
構文¶
GET internalStage file://<local_directory_path>
[ PARALLEL = <integer> ]
[ PATTERN = '<regex_pattern>'' ]
条件:
internalStage ::= @[<namespace>.]<int_stage_name>[/<path>] | @[<namespace>.]%<table_name>[/<path>] | @~[/<path>]
必須パラメーター¶
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";
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/;
現在のユーザーのステージにある myfiles
パスから、ファイルを /tmp/data
ローカルディレクトリ(Linuxまたは macOS 環境)にダウンロードします。
GET @~/myfiles file:///tmp/data/;