これは何
Snowflake でステージへのファイルの扱いのコマンドを忘れがちだったので、コピペできるようにメモを取りました。
公式ドキュメントはこのあたり
- https://docs.snowflake.com/ja/sql-reference/sql/put.html
- https://docs.snowflake.com/ja/sql-reference/sql/list.html
- https://docs.snowflake.com/ja/sql-reference/sql/remove.html
Snowsqlを準備しましょう
% brew install snowflake-snowsql
% snowsql -v
1.2.17
// もしここでバージョン変えたかったら、下記のようにすればよいです
% snowsql --versions
1.2.17
1.2.16
・・・
% snowsql -v 1.2.16
% snowsql -v
1.2.16
アップロード(put)
-- テーブルステージにファイルを上げる
put file:///PATH_TO_FILE/hoge.csv @データベース名.スキーマ名.%テーブル名
-- すでにあるファイルを上書きする(OVERWRITE = TRUE をつける)
put file:///PATH_TO_FILE/hoge.csv @データベース名.スキーマ名.%テーブル名 overwrite = TRUE
-- 複数ファイル一気にアップロードする
put file:///PATH_TO_FILE/* @データベース名.スキーマ名.%テーブル名
-- ユーザのステージにアップロードする
put file:///PATH_TO_FILE/hoge.csv @%~
上がってるファイルの確認(list)
-- 名前付きステージの場合
list @名前付きステージ名
-- テーブルステージの場合
list @データベース名.スキーマ名.%テーブル名
上げたファイルを消す(rm/remove)
remove
は省略形 rm
も使える
rm @データベース名.スキーマ名.%テーブル名
まとめ
INSERT文でファイルを投入するのはとてもコスト効率が悪いので、ステージにファイルを上げてバルクロードするようにしましょうと思っているのですが、やるたびに基本的なステージでの操作をググっていたので、メモとして残しました。