Snowflake未経験エンジニアがSnowflake Notebooksを触ってみた

Snowflakeを扱うチームに所属することになり、初めてSnowflakeを触ったのでその所感を記事にまとめてみました。

はじめに

Snowflakeとは、データの格納・処理・分析を実現するSaaS型のクラウドデータプラットフォームです。従量課金制と柔軟な拡張性が特長で、使いやすさにも定評があります。

本記事では、興味を惹かれたNotebooks機能についてまとめてみました。

Snowflake Notebooksの特徴

Snowflakeのトライアルに登録すると、すぐに各機能を利用できるようになります。機能を一通り調べている中で、「Notebooks」という機能に興味を持ちました。

Notebooksについて、公式は以下のように説明しています。

Snowflake Notebooks は、Python、 SQL 、Markdown用の対話的なセルベースのプログラミング環境を提供する、 Snowsight の統一開発インターフェイスです。Notebooksでは、Snowflakeデータを活用して、探索的データ分析、機械学習モデルの開発、その他のデータサイエンスおよびデータエンジニアリングのワークフローを、すべて同じインターフェイス内で実行できます。

出典:Snowflake Notebooksについて | Snowflake Documentation

一言で言えば、Python・SQL・Markdownを1つのページ内で記述し、複数の言語を併用して実行できる機能です。

私はこれまでの研修期間にVisual StudioやSQL Serverを使ってきましたが、C#からSQLを操作しようとすると、NuGetでライブラリをインストールする作業が必要でした。

一方、Notebooksはページを開くだけで利用を開始できるため手間がかからず、非常に便利だと感じました。

実践編

それでは実際にNotebooksを操作していきたいと思います。

ノートブックの作成

ホーム画面を開き、左側のタブから「プロジェクト」>「ノートブック」の順に選択します。

ノートブックの一覧画面に遷移した後、画面右上のボタンをクリックして新規作成します。

表示される画面でデータベースとスキーマを選択して作成します。

作成に成功すると、デフォルトで3つのセルが作成されます。1ページの内に、PythonとSQLのコードが共存しています。

プログラムの実行

デフォルトでコードが用意されていたので、それらを使って実際に実行してみたいと思います。

実行方法はセル単位での実行と全セルをまとめて実行する2パターンがあります。

セル単位での実行

まず、セル単位で実行していきます。セル内の右上のボタンを押すと実行できます。

実行に成功すると、セル内に結果が表示されます。

プログラム全体の実行

続いて、プログラム全体を実行してみます。画面右上の「すべて実行」ボタンをクリックします。

全てのセルが順に実行され、3つ目のセルにはグラフが表示されます。

ノートブックの作成からプログラムの実行までが、スムーズにできました。

気になったこと

この作業を通して、次の2点が気になりました。

  • SQLからPythonへ出力結果が渡される仕組み
  • グラフ化できる仕組み

これらの疑問に対して調査してみました。

SQLからPythonへ出力結果が渡される仕組み

SQLからPythonへ出力結果を渡すことができる理由は、次のコードにあります。cell2の実行結果をデータフレーム(表形式のデータを扱うためのデータ構造)に変換し、my_dfという変数に代入しています。

セルの名前を指定するだけでSQLの結果をPythonに渡せる、非常に便利な仕組みです。

グラフ化できる仕組み

続いて、グラフ化できる仕組みについて調べてみました。以前JavaScriptでグラフを作成する際は、新たなライブラリをインストールしなければいけませんでしたが、このNotebooksではそのような作業は行っていません。

公式ページには、以下のように説明されています。

ノートブック環境には、altair、pandas、numpy、 snowflake-snowpark-python、 Streamlit など、データサイエンスや機械学習のための一般的なライブラリがあらかじめパッケージされています。

出典:ノートブックで使用するPythonパッケージをインポートする | Snowflake Documentation

つまり、最初からデータを可視化用のライブラリが標準で利用できる状態になっている、ということです。

また、画面右上から新たなパッケージをインストールすることも可能なようです。

作業ページから移動することなく、検索するだけで新しいパッケージをインストールできる点も、分かりやすくて便利です。

まとめ

今回はSnowflakeで用意されているデータを利用して、Snowflake Notebooksの操作と所感を説明してきました。

初心者でも直感的に操作できる画面になっており、取り組みやすかったです。Markdownなど、まだまだ扱えていない機能もあるため、より多く操作してより深くSnowflakeを理解したいと思います。

執筆担当者プロフィール
森 一輝

森 一輝(日本ビジネスシステムズ株式会社)

クラウドテクノロジーサービス事業本部 Data&AIプラットフォーム部Dataソリューション1グループ所属。Microsoft Fabricを中心に扱っています。趣味は旅行です。

担当記事一覧