Snowflakeステージの管理¶
snow stage コマンドを使用すると、追加のステージ指定のタスクを実行できます。
すべてのファイルをソースディレクトリからターゲットディレクトリ にコピーします。
名前付きステージを作成する¶
snow stage create コマンドは、名前付きステージがまだ存在しない場合にステージを作成します。
たとえば、 new_stage というステージを作成するには、次のコマンドを入力します。
次の例は、すでに存在するステージ(packages)を作成しようとした場合の例です。
ステージに格納されたすべてのファイルに対して使用する暗号化のタイプを指定する場合は、 --encryption オプションを追加して、完全暗号化(SNOWFLAKE_FULL)にするか、サーバー側のみの暗号化(SNOWFLAKE_SSE)にするかを指定します。
ステージ間でファイルをコピーする¶
snow stage copy コマンドは、ローカルマシンからステージへ、ステージからローカルマシンへ、名前付きステージ間でファイルをコピーします。
次のガイドラインに注意してください。
ステージのパスは、次の例のように
@で始まる必要があります。単一のファイルをコピーすると
<destination_path>はファイルではなく、ディレクトリを識別する必要があります。指定されたディレクトリが存在しない場合は、コマンドによって作成されます。デフォルトでは、ローカルディレクトリをステージにコピーする場合、ローカルディレクトリにはファイルのみが含まれていなければなりません。
--recursiveオプションを使用すると、ローカルディレクトリのサブディレクトリをアップロードできます。--recursiveオプションでグロブ・パターンを使用できます。ステージからローカルファイルシステムにディレクトリをコピーする場合、コマンドは現在、その内部ツリー構造をフラット化します。たとえば、ローカルディレクトリに次の内容が含まれているとします。
ステージからディレクトリをコピーすると、ローカルファイルシステムディレクトリには次の内容が含まれます。
注釈
ソースディレクトリのファイル構造を維持する場合は、
--recursiveオプションを含めることができます。
ステージにファイルをコピーする¶
ローカルマシンからステージにファイルをコピーするには、次のようなコマンドを入力します。
snow stage list-files コマンドを使用して、コマンドがファイルを正しくコピーしたことを確認できます。
ステージからファイルをコピーする¶
ステージからローカルマシン上のディレクトリにファイルをコピーするには、次のようなコマンドを入力します。
ディレクトリの内容を一覧表示して、コマンドによってファイルが正しくコピーされたことを確認できます。
ローカルディレクトリが存在する必要があることに注意してください。
ユーザーステージ(@~)からコピーできます。
ステージ間でファイルをコピーする¶
最初にローカルマシンにダウンロードすることなく、2つの名前付きステージ間でファイルを直接コピーできます。これは、さまざまなステージ間でファイルを整理したり、バックアップを作成したりするのに役立ちます。
あるステージから別のステージにファイルをコピーするには、次の構文を使用します。
次の例では、production_stage から backup_stage: へすべてのファイルをコピーします。
注釈
ステージ間でコピーする場合、宛先はユーザーステージ (@~) にはできません。ソースと宛先の両方に名前付きステージを指定する必要があります。
globパターンを使用してファイルを指定する¶
source_path 引数にglobパターンを使用すると、正規表現に一致する複数のファイルを指定できます。globパターンは一重引用符または二重引用符で囲む必要があります。
次の例では、ディレクトリ内のすべての .txt ファイルをステージにコピーします。
ステージの内容を一覧表示する¶
snow stage list-files コマンドはステージの内容をリストアップします。
たとえば、ステージ内のパッケージを一覧表示するには、次のコマンドを入力します。
ステージからファイルを実行する¶
注釈
Snowflake CLI は Python バージョン 3.12 以上の Python ファイルの実行をサポートしていません。
snow stage execute コマンドは、ステージから SQL または Python ファイルを実行します。
.sqlファイルに対して、ステージから.sqlファイルで EXECUTE IMMEDIATE FROM コマンドを実行します。.pyファイルに対しては、セッション・スコープの Snowpark Python procedure を実行します。Snowflake CLI はSnowflakeでプロシージャを実行し、一貫した実行環境を保証します。Pythonスクリプトに追加要件が必要な場合は、ステージ上のファイルと同じディレクトリにある
requirements.txtファイルを指定する必要があります。snow stage executeコマンドは、Snowflake Anacondaチャンネルのパッケージのみをサポートします。デフォルトでは、コマンドは以下のディレクトリ内の
requirements.txtファイルを検索します。コマンドの
stage_pathパラメーターで指定されたステージパス。指定されたステージパス階層の親ディレクトリ(ステージに到達するまで)。
requirements.txtファイルを指定しない場合、コマンドは追加のパッケージは必要ないと見なします。
例えば、
snow stage execute @my_stage/ml/app1/scriptsを実行すると、コマンドは以下のようにファイルを探します。my_stage/ml/app1/scripts/requirements.txtmy_stage/ml/app1/requirements.txtmy_stage/ml/requirements.txtmy_stage/ml/requirements.txt
次の例では、ステージからさまざまな .sql ファイルセットを実行する方法を示しています。
ステージ名のみを指定して、ステージ内のすべての
.sqlファイルを実行します。ユーザーステージ (
@~) を指定し、ユーザーステージのscript.sqlファイルを実行します。
グロブ・パターンを使用してファイルのサブセットを選択する¶
dirディレクトリ内のすべての.sqlファイルを実行するには、globのようなパターンを指定します。dirディレクトリ内の「script」で始まり、その後に1文字が続く.sqlファイルのみを実行するには、globのようなパターンを指定します。--silentオプションで直接ファイルパスを指定します。
ステージからファイルを削除する¶
snow stage remove コマンドは、ステージからファイルを削除します。
たとえば、ステージからファイルを削除するには、次のようなコマンドを入力します。