はじめに:SnowSQLって何者?
こんにちは!Snowflakeの操作と言えば、ブラウザで使う
Snowsight を思い浮かべる方が多いと思います。でも、実はSnowflakeにはもう一つ強力な相棒がいるのをご存じでしょうか? それが
SnowSQL(スノーエスキューエル)というコマンドラインクライアントです。
SnowSQLは、ターミナル(黒い画面)からSQLを実行したり、CSVファイルをまとめてアップロードしたり、シェルスクリプトに組み込んで自動化したりできる、いわば「玄人好みの入り口」です。この記事では、
SnowSQLのインストール手順と最初の一歩となる基本操作を、初心者の方にもわかりやすく紹介していきます!
SnowSQLでできること
SnowSQLは、Snowflakeが公式に提供しているCLI(Command Line Interface)です。
Snowsightが「マウスでポチポチ操作」するGUIだとすれば、SnowSQLは「キーボードでサクサク操作」するCLI、というイメージですね。
- SQLクエリ実行:SELECTやCREATE TABLEなどをターミナルで即実行
- ファイルアップロード:
PUTコマンドでローカルのCSVをステージへ転送
- スクリプト自動化:複数のSQLを一括実行、バッチ処理に最適
- 結果のCSV出力:オプションでクエリ結果をファイル化
SnowSQLのインストール手順
1. インストーラのダウンロード
まずは
公式のSnowSQLダウンロードページ から、自分のOS(Windows / macOS / Linux)に合ったインストーラを取得します。
Snowflakeのトライアルアカウントを作成済みであれば、Snowsightの「Help & Support」内のDownloadsからも入手可能です。
2. インストールと動作確認
インストーラを実行すると、自動的にPATHが通って
snowsql コマンドが使える状態になります。ターミナルを開いて以下を打ってみましょう。
snowsql -v
バージョン番号が表示されればインストール成功です!
3. 接続情報の設定
毎回アカウント名やユーザー名を打ち込むのは面倒なので、設定ファイル
~/.snowsql/config に接続情報を書いておくと便利です。
[connections.myconn]
accountname = xy12345.ap-northeast-1.aws
username = TARO
password = ********
dbname = MY_DB
warehousename = COMPUTE_WH
※パスワードを書きたくない場合は省略すれば、接続時に都度入力できます。
基本的な使い方
接続してクエリを実行する
設定したコネクション名を指定して接続します。
snowsql -c myconn
プロンプトが
myconn#COMPUTE_WH@MY_DB.PUBLIC> のような形に変わったら接続成功です。あとは普通にSQLを書くだけ!
SELECT CURRENT_USER(), CURRENT_WAREHOUSE();
SHOW TABLES;
SQLファイルをまとめて実行する
-f オプションでSQLファイルを一括実行できます。定型処理の自動化にぴったりです。
snowsql -c myconn -f daily_load.sql
ローカルファイルをアップロード
SnowSQLの強みのひとつが
PUT コマンド。ローカルのCSVをSnowflakeの内部ステージにアップロードできます(これはSnowsightのワークシートでは実行できません!)。
PUT file:///Users/taro/data/sales.csv @MY_STAGE;
よくあるユースケースと注意点
- 定期バッチ:cronやタスクスケジューラと組み合わせて夜間ロード処理を自動化
- 大量データ投入:数百MB〜GB級のCSVは、Snowsightよりも
PUT の方が安定
- 注意:configファイルにパスワードを平文で書く場合は、ファイル権限(
chmod 600)を必ず絞りましょう
まとめ
SnowSQLは、Snowsightだけでは届かない「自動化」「大容量ファイル投入」「スクリプト連携」をカバーしてくれる頼れるツールです。最初はインストールと設定で少しハードルを感じるかもしれませんが、一度動いてしまえばあとは
snowsql -c myconn の一行で世界が広がります。
Snowflakeの全体像を学んだら、ぜひこのCLIにも触れてみてくださいね!
参考リンク
関連記事