Visual Studio CodeのSnowflake用Extension「Snowflake Driver for SQLTools」を試してみた #SnowflakeDB

2020.11.17

Snowflakeでクエリを実行する際には、ブラウザ上でログインしてワークシートを用いたり、snowsqlというCLIクライアントをインストールして使用することが一般的だと思います。

なのですが、先日「Snowflake Driver for SQLTools」というVisual Studio Code向けのExtension(拡張機能)が公開され、Visual Studio CodeからでもSnowflakeでクエリを実行できるようになりました。

本ブログではこの拡張機能のインストール手順から、少し触ってみた内容を共有させて頂きます。

※Visual Studio Codeは、以下VSCodeと表記させて頂きます。

前提

  • 使用バージョン
    • VSCode:1.51.1
    • Snowflake Driver for SQLTools:0.2.0

Snowflake Driver for SQLToolsは、2020年11月3日に公開され、2020年11月17日までにすでに4回バージョンアップを行っております。

今後もバージョンアップが頻度高めに行われる可能性は高いため、下記の拡張機能のページから随時最新情報をご確認ください。

VSCodeへのインストール

VSCodeへのインストールを行います。 とはいっても、通常の拡張機能と同じのため、とても簡単です!

VSCodeの拡張機能から「Snowflake Driver for SQLTools」を検索して、インストールを押します。 これで完了です!

接続先の設定

左側に追加された円柱状のアイコンをクリックし、「Add new connection」を押して、続けて「Snowflake」を選択してください。

すると、下図のように接続の設定画面が表示されるため、入力を行って、設定画面左下の「SAVE CONNECTION」を押してください。 ここでは接続に必須の項目だけ入力してみます。

  • Connection name:任意の接続名を記入してください。
  • Account:「アカウント名.リージョン名.使用プラットフォーム」として入れます。例えば、「ub00000.ap-northeast-1.aws」といった形式です。使用しているアカウントにブラウザからログインすると、URL欄からこの形式でコピー出来るはずです。
  • User:ログインするユーザー名を入力してください。
  • Password:User欄に入れたユーザーのパスワードを入力してください。
  • Database:接続先となるデータベース名を入力します。
  • Warehouse:使用先となるウェアハウス名を入力します。

接続先の設定が完了すると、下図のような画面に遷移します。 「CONNECT NOW」を押してみましょう。

すると、設定したSnowflakeのアカウントに接続した状態で、VSCodeの編集画面が立ち上がりました! 接続の設定はこれで完了です。

動作検証

環境は整ったので、どんなことが出来るか確認してみます。

ローカルに保存したsqlファイルの読み込み

通常のVSCodeと同じく、ドラッグ&ドロップでファイルを読み込めるか見てみます。 当たり前かもしれませんが、こちらは問題なく出来ましたね!

指定したクエリの実行

ブラウザ上のワークシートでは「;」を1つの区切りとして、クエリを実行することが出来ます。

この拡張機能では、実行したいクエリを先頭から末尾までマウスオーバーで選択した状態で、右クリックを押して、「Run Selected Query」を押すことで実行ができます。 ちなみに、Windowsの場合は「Ctrl + E」を2回続けて押すことでも実行可能です。

ブラウザのワークシートの場合は実行したいクエリをマウスで選択しているだけで実行できるため、長いクエリの実行の際には少し不便ですね…今後の改善に期待です!

操作権限のある別データベースでのクエリ実行

下図は、左側が接続しているアカウントのデータベース一覧、右側はVSCode上の接続先のデータベース情報を表示しているのですが、VSCode上は接続設定したデータベースしか表示されていません。

この状態で、VSCodeから他のデータベースに接続してクエリ実行可能なのか?を確認してみたいと思います。

まず、使用するデータベースを変更するクエリを実行してみます。 どうやらこれは問題なく動くようです!

続けて、対象のデータベースに対して実行できるSELECT文を実行してみます。 これも問題なく実行できました!

ちなみに、ここまで実行できたことを確認した後で、VSCodeのCONNECTIONSを見ても、接続設定したデータベースが変わらず表記されています…

とはいっても、VSCode上で別のデータベースに対してのクエリ実行は確認できました! VSCodeから、現在設定しているデータベースを確認したい場合は、下図のようにcurrent_warehouse()など使うのが良いと思います。

拡張機能限定の機能

ここまでVSCodeでのクエリの実行の仕方など説明してきましたが、マウスオーバーしないとクエリが実行できない、CONNECTIONSの欄に接続設定したデータベースしか表示されない、など少しデメリットを多く説明してしまっていると思います。

しかし、VSCodeの拡張機能にしかできないこともあるんです! その機能を2つ簡単に紹介します。

クエリの体裁を整える

VSCodeでは、クエリの体裁をきれいに整えることが1クリックで出来ます! 以下のように、整えたいクエリ全体をマウスオーバーで選択した上で右クリックを押し「Format Selected Query For Any Document」を押します。

すると、下図のようにクエリがきれいに整いました! サブクエリやCASE文が込み入って見づらくなってきたクエリを、ぱぱっと整えることができるのは良いですね!

クエリをブックマークする

VSCodeの拡張機能では、指定したクエリをブックマークに登録することが出来ます。 実際にやってみましょう。

まず、下図のように対象のクエリをマウスオーバーで選択した上で右クリックを押し「Bookmark Selected Query」を押してみます。

すると、VSCodeのウインドウの最上部に下図のようにブックマークする際の名前を記入する欄が表示されますので、任意の名前を入力してみます。

ブックマークを行うと、このように左側のBOOKMARKS欄に設定した名前でクエリが追加されました! よく使用するコンテキストを変更するクエリなどは、ブックマーク登録すると良いかもしれませんね!

最後に

いかがでしたでしょうか!

VSCodeはエンジニアの方に広く使用されているツールであるため、SnowflakeのクエリをVSCode上で実行できるというのはSnowflakeの新たな魅力に繋がるのでは、と感じています!

ぜひ、この拡張機能を使ってみてください。