【Snowflake】PythonでSnowflakeに接続する方法

【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データをロードしてみました。

皆さんもこのライブラリを利用してデータ分析、大量データロードに活用してみてください。

 

Snowflakeの導入はぜひKCMEで!

製品に対する操作方法、技術的な質問などは導入前・導入後に関わらずメールにてお答えします。また、Snowflakeを用いた環境構築、開発、ヘルプデスク対応なども承りますので、お気軽にご相談ください。

おすすめの記事