【Snowflake】PythonでSnowflakeに接続する方法
こんにちはMJです。今回はSnowflakeをPythonで接続する方法についてご紹介します。
Snowflake Python Connector
Snowflake Python ConnectorはPythonアプリケーションからSnowflakeデータベースとやり取りするためのライブラリです。
クエリの実行、データの読み込みや書き込みすることができます。
条件としてはPython3.8以降のバージョンが必要です。
インストール方法
Snowflake コネクタをインストールするには、pipコマンドを使用します。
pip install snowflake-connector-python
今回はPythonのPandasライブラリも使うので、Pandas互換バージョンのSnowflakeコネクタをインストールするには、次のコマンドを実行します。
pip install "snowflake-connector-python[pandas]"
使い方
Snowflakeコネクタを使用するには、以下の情報が必要です。
- ユーザー名
- パスワード
- アカウント名
import snowflake.connector
# Snowflakeに接続
conn= snowflake.connector.connect(
user='<ユーザー名>',
password='<パスワード>',
account='<アカウント名>'
)
# カーソルを作成
cursor= conn.cursor()
try:
# クエリを実行
cursor.execute("SELECT current_version()")
# 結果を取得
result= cursor.fetchone()
print(f"Snowflake Version: {result[0]}")
finally:
# カーソルを閉じる
cursor.close()
# 接続を閉じる
conn.close()
user, passwordは snowflakeで生成したユーザーの情報です。
accountはアカウント識別子の情報です。
アカウント識別子は<orgname>-<account_name>形式です。<orgname>は Snowflake組織の名前で、<account_name>は組織内にあるアカウントの一意の名前です。
画像のようにSnowsightにログインしたユーザーから使用中のアカウントで「Copy account identifier」ボタンを押したら、アカウント識別子をコピーできますが、コピーの結果が「KCME.DA」のように<orgname>-<account_name>形式ではありませんので、「KCME-DA」に変換する必要があります。
接続が正常に完了すると、以下の出力が確認できます。
クエリ実行
Snowflakeコネクションが正常に完了しましたので、簡単なクエリを実行してみます。
まず、コネクタオブジェクトを作ります。
ダブルクォート3つで囲んだところにクエリを作り、cursor( ).execute( )でクエリを実行します。
ロードしたデータはdata変数に保存しました。
次にfetch_pandas_all()を実行し、pandasデータフレームを返還しました。
データがpandasデータフレーム形式でロードされたことが確認できました。
まとめ
Snowflake Python Connectorを利用して、PythonアプリケーションからSnowflakeデータをロードしてみました。
皆さんもこのライブラリを利用してデータ分析、大量データロードに活用してみてください。