1
/
5

-Qiita記事Part.32-VSCodeのSnowflake拡張のススメ

こんにちは、ナイトレイインターン生の鈴木です。
Wantedlyをご覧の方に、ナイトレイのエンジニアがどのようなことをしているか知っていただきたく、Qiitaに公開している記事をストーリーに載せています。

今回はGISエンジニア徳竹さんの記事です。
少しでも私たちに興味を持ってくれた方は下に表示される募集記事もご覧ください↓↓

VSCodeのSnowflake拡張 おすすめです

みなさん、VSCodeのSnowflake拡張 Snowflake Extension for Visual Studio Code を利用していますか?

Snowsight(Snowflakeのウェブインターフェース)の使い勝手が良いので、あえてVSCodeでSnowflakeする必要性を感じていなかったのですが、今更ながら利用したところ結構便利だったのでおすすめさせていただきます!

※ VSCodeへのインストール方法については別記事などをご参照ください。

VSCodeにてSnowflake操作できる拡張機能がリリースされたので使ってみた - Qiita
はじめまして、ちゅらデータ株式会社のSE、きたっぴと申します。今年9月にちゅらデータにジョインしてからsnowflakeを業務に使用することとなったのですがコーディングはVSCodeを利用し、s...
https://qiita.com/kitappi/items/82ab46aa10b86c6ba4a0#%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83%E4%BD%9C%E6%88%90

おすすめポイント

インターフェイスが見やすい

まず、Snowflakeの公式のインターフェイス説明はこちらです。

Snowflake Extension for Visual Studio Code | Snowflake Documentation
Snowflakeは Visual Studio Code (VS Code)の拡張機能を提供し、SnowflakeユーザーがSnowflake SQL ステートメントを VS Codeで直接記述および実行できるようにします。この拡張機能は Snowpark Python とも統合され、Pythonコードでの SQL のデバッグ、構文の強調表示、オートコンプリート機能を提供します。 拡張機能はパッケージ化された機能であり、多くの場合サードパーティによって提供され、 VS Codeに新しい機能を追加します。
https://docs.snowflake.com/ja/user-guide/vscode-ext#navigating-the-sf-vscext-interface

Snowsightのワークシート画面と比較して、VSCode拡張のインターフェイスの方が使いやすいなと感じています。

Snowflakeのタブをファイル管理タブと別側に分割することで、SQLファイルの行き来とテーブル一覧の確認がタブ切り替え無しにできるところが良いです。
SnowsightのワークシートではDBとワークシートのタブ切り替えが必要で若干手間でした。

また、Snowsightとの違いとして、テーブルの情報が確認しやすいところも気に入っています。
Snowsightのワークシート画面では左側のタブ内に詰まっているので少し確認しづらかったところ、VSCode拡張ではクエリ結果と同様の位置に表形式で表示してくれてかなり見やすい。

GitHub Copilotの支援を受けることができる

GitHub Copilotの支援を受けてクエリが書けるのはやはり強いです。
※Snowflake Copilotが利用できるようになればちょっと話が変わってくるかもしれません!

Snowflake Copilotのパブリックプレビュー開始:AIを活用した画期的なSQLアシスタント
データ分析を簡素化し、堅牢なガバナンスを維持する新しいAI搭載SQLアシスタント、Snowflake Copilotのパブリックプレビューを発表します。
https://www.snowflake.com/blog/copilot-ai-powered-sql-assistant/?lang=ja

例えば下記クエリのように、国コード(アルファベット3文字)が登録されているテーブルがあり、3地域に分類したテーブルを別途作成するという時に、コメントでの指示に従って、アルファベット3文字バージョンのクエリを自動で提案してくれます。
これを人力入力は結構面倒なのでかなり良い。

同様に、「難しくはないが書くのが手間」みたないクエリを書く際にはかなり強力な助けになります。
(集約関数を利用していると、GROUP BYに勝手にカラム名を追記してくれるもの助かる。)

/*
以下の3地域に分類した地域別テーブルをする。
東アジア:韓国、台湾、香港、中国、マカオ
東南・南アジア:タイ、シンガポール、マレーシア、インドネシア、フィリピン、ベトナム、インド
欧米豪:米国、豪州、英国、カナダ、フランス、ドイツ、イタリア、ニュージーランド、スペイン、メキシコ、オランダ、ロシア、スイス、ハンガリー、フィンランド、ポルトガル、チェコ
*/

create or replace table region_country_code as
select
case
when alpha3 in ('KOR', 'TWN', 'HKG', 'CHN', 'MAC') then '東アジア'
when alpha3 in ('THA', 'SGP', 'MYS', 'IDN', 'PHL', 'VNM', 'IND') then '東南・南アジア'
when alpha3 in ('USA', 'AUS', 'GBR', 'CAN', 'FRA', 'DEU', 'ITA', 'NZL', 'ESP', 'MEX', 'NLD', 'RUS', 'CHE', 'HUN', 'FIN', 'PRT', 'CZE') then '欧米豪'
else 'その他'
end as region,
ja_name,
alpha3
from country_code
;

ステージを操作しやすい

ステージを操作できる機能、地味に便利です。

Snowflake Extension for Visual Studio Code | Snowflake Documentation
Snowflakeは Visual Studio Code (VS Code)の拡張機能を提供し、SnowflakeユーザーがSnowflake SQL ステートメントを VS Codeで直接記述および実行できるようにします。この拡張機能は Snowpark Python とも統合され、Pythonコードでの SQL のデバッグ、構文の強調表示、オートコンプリート機能を提供します。 拡張機能はパッケージ化された機能であり、多くの場合サードパーティによって提供され、 VS Codeに新しい機能を追加します。
https://docs.snowflake.com/ja/user-guide/vscode-ext#working-with-stages

GIS関連の解析では、GISソフトで作成したデータ(ポリゴンなど)をインポートして使いたいことが多々あります。
それらのデータをインポートするにはINSERT文でクエリしていくことも可能ですが、データが一定数ある場合にはそこそこ大変なので、GeoJSON等にしてステージに上げてそれをCOPYしてくる流れを取っています。
この中で「ステージに上げる」部分が少し手間でした。。。

しかし、VSCodeの拡張では、ポチポチするだけですぐにステージにファイルをアップロード可能です!
下記スクショのアップロードボタンをポチッとするだけで、ローカルファイルをステージにアップロードできます。

クエリの共有がしやすい

Snowsightのワークシートも共有可能ですが、VSCodeでは単純にSQLファイルを扱っているだけなので、ファイルの共有が簡単です。
GitHubでも、Googleドライブでも好きな方法で。
汎用クエリ等はGit管理ができる点もいいですね。

(試していないのですが)Snowpark Pythonとの連携

英語版のドキュメントでは紹介されていますが、Snowpark Pythonコードをデバックしたり、SQLをシンタックスハイライト・オートコンプリートしてくれるようです。
また、Jinjaテンプレートの構文ハイライトと括弧のオートコンプリートをしてくれるらしい。(Jinjaを使ったことはないけれど、なんだか便利そうな雰囲気)

Jinjaテンプレートの書き方をがっつり調べてまとめてみた。 - Qiita
本記事はQiitaの「データに関する記事を書こう!」イベント用の記事となります。最近聞くことが多くなってきたJinjaの書き方について整理&まとめてみました。Jinjaって何?(どんなところで使...
https://qiita.com/simonritchie/items/cc2021ac6860e92de25d

最後に

私たちの会社、ナイトレイでは一緒に事業を盛り上げてくれるエンジニアを募集しています!
Web開発メンバー、GISエンジニア、サーバーサイドエンジニアなど複数ポジションで募集しているため、
「専攻分野を活かしたい」「横断的に様々な業務にチャレンジしてみたい」と言ったご要望も相談可能です!

✔︎ GISの使用経験があり、観光・まちづくり・交通・防災系などの分野でスキルを活かしてみたい
✔︎ ビッグデータの処理が好き!(達成感を感じられる)
✔︎ データベース構築、サーバー周りを触るのが好き
✔︎ 社内メンバーだけではなく顧客とのやり取りも実はけっこう好き
✔︎ 自社Webサービスの開発で事業の発展に携わってみたい
✔︎ 地理や地図が好きで、位置情報データにも興味を持っている

一つでも当てはまる方は是非お気軽に「話を聞きに行きたい」ボタンを押してください!

Invitation from 株式会社ナイトレイ
If this story triggered your interest, have a chat with the team?
株式会社ナイトレイ's job postings

Weekly ranking

Show other rankings
Like 鈴木 梨子's Story
Let 鈴木 梨子's company know you're interested in their content