SnowflakeにローカルPCのAnaconda環境のjupyter notebookからつないでみました。
トライアルのSnowflake環境です。
Anacondaはインストール済みです。
仮想環境作成
まずはAnacondaの仮想環境を作成します。
左メニューの「Environments」を選んで、画面下部の「Create」をクリックします。
するとこんな小画面が出てくるのでNameに今回は「SnowparkTest」と入れました。
「Create」をクリックします。
SnowparkTestというのが新たに出てきます。
次に左メニューの「Home」をクリックします。
いろんなアイコンが並んでる上にドロップダウンリストで「SnowparkTest」が選択状態であることを確認します。
いろんなアイコンのうち、「jupyter notebook」のインストールをクリックします。(右から2番目、上から2番目)
インストールが終わるとLaunchにボタン名が変わります。
クリックします。
すると、ブラウザが起動します。
ここからはブラウザに操作画面が移ります。
jupyter notebookでの操作
私の場合は
/workspace
がAnacondaの初期フォルダです。
その下に「SnowparkTest」フォルダを作成しました。
フォルダ作成は右上の「▼New」から行えます。
次に同じ「▼New」から「Python 3(ipykernel)」でPythonのファイルを作成します。
Untitledというファイル名でファイルができるとこのような画面になります。
ここからはこの環境に必要なライブラリをインストールしていきます。
pip install snowflake-snowpark-python
これが必要なライブラリ:snowflake-snowpark-pythonです。
この画面では切れちゃってますが、最後にカーネルのリスタートをすべしみたいな英語のメッセージが出ていたので従います。
画面上部のメニューに「Kernel」というのがありますので、そこから「Restart」を選びます。
こんな確認メッセージが出るので「Restart」です。
pip install numpy
pip install pandas
もついでにやっておきました。使わないけど。
これでやっと環境準備が整いました。
Snowflakeへの接続設定
Pythonファイルと同じフォルダに「cred.json」というテキストファイルを作ります。
※jsonファイルの名前はなんでもいいです。
Snowflakeへの接続情報です。
- account
- user
- password
- role
- warehouse
を定義しておきます。
※このアカウントはSnowflakeトライアル環境のものです。
こんな感じで「Untitled.ipynb」と「cred.json」が同じ階層に存在するようにします。
Snowflakeにつないでみる
ではjupyter notebookで以下を入力します。
from snowflake.snowpark import Session
import json
session = Session.builder.configs(json.load(open('cred.json'))).create()
実行するとここではまだ何も起こりませんが、cred.jsonを読み込んでSnowflakeに接続はしています。
続けて以下を入力して実行します。
tableName = "TEST_DB.TEST_SCHEMA.TRIPS"
df = session.table(tableName).limit(10)
df.show()
DB:TEST_DB
スキーマ:TEST_SCHEMA
テーブル:TRIPS
から上限10件で取得します。
なおこの"TEST_DB.TEST_SCHEMA.TRIPS"は以前の下記の記事の際に作ったものです。
実行します。
出力が表形式じゃないので見づらいですが、ちゃんと結果が取れました。
パイソニスタはこれでいろいろできちゃうということですね。
あとがき
最近はSnowflakeの中にnotebookができていて、こんなことをしなくてもPythonが使えるらしいとは聞いていますが、まだ自分はそこまでキャッチアップできていないので、古の手法でつないでみました。
認証情報をjsonファイルに書いておくという形をとったのですが、SSO環境の場合はどうなるのかというのは謎です。
次はSSOの会社環境を使って試してみようと思います。(自信なし。)