SnowSQL コマンドで Snowflake に接続する

AWS運用自動化サービス「Cloud Automator」

技術4課の宮本です。先日スタンディングデスクを導入したのですが、2日目にして何故か首を痛めてしまいました。人間の身体って脆いですね。

さて、今回は先日のブログ DWH製品の注目株!! Snowflake をさわってみた の続編です。前回はWebインターフェースでクエリを実行しましたが、今回はCLIクライアントである SnowSQL を試してみたいと思います。PostgreSQL でいうところの psql 、Oracle でいうところの sqlplus に相当するツールです。

SnowSQL のインストール

まずはインストールからです。https://docs.snowflake.com/ja/user-guide/snowsql-install-config.html にアクセスしてみましょう。

主要なプラットフォームに対応しているようです。

今回は手元の環境 (macOS Mojave 10.14.6) で試してみます。

上手くいきましたね。インストールされたか確認してみます。

無事インストールされているようです。

Snowflake に接続する

早速ログインしてみましょう。

-a はアカウント名、-u はユーザー名を指定するオプションです。アカウント名の XXXXXXXX 部分はご自身のアカウント名に置き換えて下さい。(Webインターフェースにログインする際のURL https://XXXXXXXX.ap-northeast-1.aws.snowflakecomputing.com/console/login  で確認出来ます。)

アカウント名はプラットフォーム、リージョンによって微妙に形式変わってくるので、こちら のページの 地域別のアカウント名の例 を確認して下さい。

データベース、スキーマは選択されていない状態です。以下の様に設定します。

タイプするたびに補完候補が出てくれます。凄くよく出来ています。

ちなみにログイン時にデータベース(-d オプション)、スキーマ(-s オプション)を指定することも出来ます。

クエリを実行する

テーブル形式で出力されます。キーワードを逐一補完してくれて最高です。

ctrl + d で接続を切ることが出来ます。

接続情報を設定ファイルで管理する

接続情報を都度入力するのは面倒ですよね。そんな時は設定ファイルを用意しましょう。Linux/macOS の場合は ~/.snowsql/config 、Windowsの場合は %USERPROFILE%\.snowsql\config ファイルを開いて以下の様に追記します。

[connections.<name>] は接続情報を記載するセクションを意味します。接続情報には任意の名前をつけることが出来ます。(今回はconn1 という名前を付けました。)

パスワードは平文で保存される為、configファイルの取り扱いに注意して下さい。例えば、Linux/macOS の場合に chmod 700 ~/.snowsql/config の様に最小限のPermission を設定し、他のユーザーからは参照できない様にする等の対策を行いましょう。

用意したconfigを利用したログインを試してみます。

-c オプションでconfigファイルに記載した接続情報の名前を指定します。

まとめ

SnowSQL で Snowflake にアクセスする方法をご紹介しました。タイプする度に補完候補が表示されるので、使っていて非常に気持ちの良いツールです。

次回は Python からのアクセスを試してみたいと思います。

AWS運用自動化サービス「Cloud Automator」