はじめに:なぜ Snowflake CLI を学ぶの?
こんにちは!普段 Snowflake を触るとき、Snowsight(ブラウザのWeb UI)を開いて SQL を書いていませんか?もちろんそれでもOKなのですが、もう少し開発っぽいことをしたくなると…
- ローカルの SQL ファイルをまとめて実行したい
- Snowpark のコードを CI/CD でデプロイしたい
- 複数の環境(dev / prod)を切り替えたい
こんなときに頼れるのが Snowflake CLI(コマンド名は snow)です。これは Snowflake が公式に提供する次世代の CLI で、SQL 実行から Snowpark / Streamlit / Native App のデプロイまで、ターミナルひとつでこなせます。この記事では、インストールから基本コマンド、そして「プロジェクト管理」と呼ばれる仕組み(snowflake.yml)までを一気に紹介します!

Snowflake CLI ってどんなもの?
Snowflake CLI は Python 製のオープンソースツールで、従来の SnowSQL よりも幅広い操作に対応しています。SnowSQL が「ターミナルから SQL を投げる専用ツール」だったのに対し、Snowflake CLI は「Snowflake 上のアプリ開発を丸ごと管理するツール」と考えるとイメージしやすいです。
インストール
pip(Python のパッケージマネージャ)があれば一発です。
pip install snowflake-cli
# バージョン確認
snow --version
macOS なら Homebrew、Windows なら公式インストーラも用意されています。
最初にやるのは「接続設定」
CLI から Snowflake に繋ぐためには、アカウント情報を登録します。対話形式で進められるので簡単です。
snow connection add
# 入力項目の例
# Name for this connection: dev
# Snowflake account name: xy12345.ap-northeast-1.aws
# Snowflake username: TARO
# Snowflake password: ********
# Role / Warehouse / Database / Schema もここで指定可能
登録した接続は次のコマンドで一覧・テストできます。
snow connection list
snow connection test -c dev
複数登録しておけば、-c prod のように切り替えられて便利です。
基本コマンド早見表
覚えておくと最初の一歩がスムーズな主要コマンドです。
# SQL を直接実行
snow sql -q "SELECT CURRENT_VERSION();"
# SQL ファイルを実行
snow sql -f ./scripts/init.sql
# オブジェクト一覧の取得
snow object list table --database MYDB --schema PUBLIC
# ステージにファイルをアップロード
snow stage copy ./data.csv @my_stage
SQL を投げるだけなら snow sql だけ覚えれば十分。CI のシェルスクリプトにそのまま組み込めるのが嬉しいところです。

プロジェクト管理:snowflake.yml が主役
Snowflake CLI の真骨頂は「プロジェクト」機能です。snowflake.yml というYAMLファイルにアプリの構成を書いておくと、snow app deploy や snow snowpark deploy 一発で必要なオブジェクトをまとめてデプロイできます。
新規プロジェクトの作成
# Snowpark プロジェクトのテンプレートを生成
snow init my_project --template example_snowpark
cd my_project
生成された snowflake.yml はこんな感じ。
definition_version: 2
entities:
hello_function:
type: function
handler: "functions.hello"
signature:
- name: "name"
type: "string"
returns: string
stage: dev_stage
artifacts:
- src: app/
dest: my_app/
あとは下記でデプロイすれば、Snowflake 側に UDF が登録されます。
snow snowpark build
snow snowpark deploy
Python コードを書く部分は Snowpark入門|PythonでSnowflakeのデータ処理を書こう や Snowpark Python入門|DataFrameの作り方と操作をやさしく解説 が参考になりますよ。
よくあるユースケース
- CI/CDで自動デプロイ:GitHub Actions から
snow snowpark deployを呼び、PR マージで本番反映 - 環境ごとの切り替え:
-c dev/-c prodで接続を切り替え、同じ YAML を再利用 - 運用スクリプトの一括実行:タスクやストアドプロシージャの DDL を
snow sql -fで適用
定期実行系のオブジェクト(Snowflakeタスクやストアドプロシージャ)も、CLI からスクリプトで一括管理するとミスが減ります。
まとめ
Snowflake CLI は「ターミナル派の人が幸せになるツール」です。最初は snow connection add と snow sql だけ覚えれば十分。慣れてきたら snowflake.yml でプロジェクト管理にステップアップして、CI/CDまで自動化していきましょう!
参考リンク
関連記事
- Snowpark入門|PythonでSnowflakeのデータ処理を書こう – CLIでデプロイするSnowparkコードの基礎
- Snowpark Python入門|DataFrameの作り方と操作をやさしく解説 – DataFrame APIで実装する具体例
- Snowflakeタスク入門|定期実行ジョブを5分で作る方法 – CLIから一括管理したいオブジェクトの定番
- Snowflakeストアドプロシージャ入門|SQLとJavaScript版の使い方 – DDLをsnow sqlで流すと便利

