VSCodeにてSnowflake操作できる拡張機能がリリースされたので使ってみた

はじめまして、ちゅらデータ株式会社のSE、きたっぴと申します。

今年９月にちゅらデータにジョインしてからsnowflakeを業務に使用することとなったのですが  
コーディングはVSCodeを利用し、snowflakeの操作はブラウザにて行っていました。(私はChromeを利用)

そのため、作業切り替えのたびにタスク事態の切り替えが必要となり、細かいタイムロスに悩んでおりました。

そんな時、Twitterのタイムラインに気になるツイートが流れてきました。

https://twitter.com/tshoji_data/status/1602457150663856129?s=20

VSCodeにてSnowflakeを操作できるならば、今より快適に作業できるはず！
試してみた結果を本記事にて記載したいと思います。

***
# テスト環境作成

まずは環境作成ですが、とても簡単でした。他の拡張機能と同様です。

1.VSCodeの「拡張機能」タブにて「Snowflake(Public Preview)」を選択、インストール
![public previewインストール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/41257ac8-47f9-a79b-df85-d753c6cab4f5.png)

2.インストール後、「Snowflake」タブが新規作成されていることを確認
![public preview インストール後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/d7c1824a-91c1-9db6-d477-9438f836c2c0.png)

ここまでがテスト環境作成です。流石に拡張機能実装だけだと簡単ですね。

***

# テスト

さて、ここからがテスト内容。今回は、触りのテストという事で
- ログインテスト
- クエリ実行テスト
- オブジェクト確認テスト

の、３点を試していきたいと思います。

***

# ログインテスト

まずは基本中の基本。「VSCodeからSnowflakeにログインができるのか」をテストしました。

1.VSCodeの「Snowflake」タブを選択する。
![ログインテスト1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/ab4c6da2-ed8f-c043-15d8-1306e76cf0d3.png)


・・・成程、タブ選択ですぐログイン作業に入れるんですね。

2.「Account Name/URL」入力後、「Continue」ボタンを押下する。
![ログインテスト2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/3947c400-76d8-1e0a-0b60-beb163e65db5.png)

フムフム、ここまでもSnowflakeにブラウザでログインする手順と同じ。戸惑い無く進みました。

3.「UserName」、「Password」入力後、「Sign in」ボタンを押下する。
![ログインテスト4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/5ec63e5b-cef1-38a6-39b9-53e3b485b52b.png)

これだけの動作で、ログイン先SnowflakeのDBの確認が行えました。テスト前はもっと細かい設定が必要と考えていましたがすごく簡単ですね。ロール、DB、スキーマもブラウザと同じく選択可能。ここも心配していた箇所でしたので安心安心。
※ログインユーザにMFA認証している場合は「Sign in」ボタン押下時にスマホに認証確認が届きますよ！

***

# クエリ実行・オブジェクト確認テスト

ログインまで正常に行えたようなので、続いてクエリ実行をテストしました。

ログインまで正常に行えたようなので、続いてSnowflake内に用意した各オブジェクトが確認できるのかをテストしました。
※テスト作業はDB「KITAPPI_TEST_DB」、スキーマ「PUBLIC_PREVIEW」で行っております。

1.テーブル作成
![クエリ実行テスト1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/d82d97f4-73de-278e-d03a-06aa1e4ea559.png)

計4カラム保持の「extension_test_table」を作成するためのクエリを実行いたしました。
![クエリ実行テスト2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/252beb09-98d4-6aa9-bf34-69a56534903f.png)


クエリは正常に実行され、テーブルが作成されました。本画面内でも、
- テーブル数が確認できるようになっていること(1テーブル)
- どのような内容のクエリを実行したかの履歴及びOK/NG情報
- クエリ実行時間

が、確認することができます。正直ここまでデフォルトで確認できるとは思ってはいませんでした。

・・・ここで気が付いたことが。
![クエリ実行テスト4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/d42ea5da-383c-6269-dc0e-ce45db913509.png)
クエリ毎に「Execute」ボタンが表示されています。これを押下することで以下１クエリのみ実行が行えました。
これまでは単独のクエリを実行する場合はクエリを選択したうえで実行を行っていたのですが
それを行わないでいいのはかなりのプラスポイントに感じます。

続いて、上記で作成した「extension_test_table」のオブジェクト確認です。

2.テーブル確認(「extension_test_table」選択後、画面下部の「SNOWFLAKE:OBJECT DETAILS」選択)
![クエリ実行テスト3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3070340/84bca252-5f32-3306-bccf-7adffd88b589.png)

いいですね、テーブル情報確認できてま・・・あれ？null許容情報がない？
カラム名およびデータ型しか確認できないですね。これは思ってもみませんでした。

***

# テストまとめ

正直、資料が無いにも関わらず直感的な設定でここまで作業可能になるとは思っておりませんでした。
気になる点は御座いましたが(オブジェクト確認項目が少ない)十分耐えれる内容かなと考えております。
それよりも、クエリ履歴の確認が容易になったこと、作業環境を統一出来ることのメリットの方を強く感じました。

今後暫くはVSCodeにてSnowflakeの作業を行ってみて、メリット、デメリットをもう少し纏めたいと思います。

本日はここまでとなります。

フィードバックが溜まりましたらまた記事に起こしたいと思います。