LoginSignup
1
1

VSCodeのSnowflake拡張のススメ

Posted at

VSCodeのSnowflake拡張 おすすめです

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

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

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

おすすめポイント

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

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

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

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

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

インターフェイス.png

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

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

例えば下記クエリのように、国コード(アルファベット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
;

ステージを操作しやすい

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

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

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

ステージ作成テスト_sql_—_Qiita.png

クエリの共有がしやすい

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

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

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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1