Snowpark Pythonのセッションの作成¶
アプリケーションでSnowparkを使用するには、セッションを作成する必要があります。コードの記述に便利なように、パッケージやオブジェクトの名前をインポートすることもできます。
このトピックの内容:
セッションの作成¶
ライブラリを使用する最初のステップは、Snowflakeデータベースとのセッションを確立することです。
Sessionクラスをインポートします。
from snowflake.snowpark import Session
認証には、 Python用Snowflakeコネクタ がサポートするのと同じメカニズムを使用します。
Python用Snowflakeコネクタの connect
関数で使用するのと同じパラメーター(例: アカウント名、ユーザー名など)を使用して、Snowflakeデータベースとのセッションを確立します。詳細については、PythonコネクタAPIのドキュメントの 接続関数パラメーター をご参照ください。
connections.toml
ファイルを使用した接続¶
接続構成ファイルに認証情報を追加するには、
テキストエディターで
connections.toml
ファイルを開いて編集します。たとえば、Linuxの vi エディターでファイルを開く場合:$ vi connections.toml
新しいSnowflake接続定義を追加します。
たとえば、アカウント
myaccount
、ユーザーjohndoe
、パスワード認証情報とデータベース情報を持つmyconnection
というSnowflake接続を追加するには、構成ファイルに以下の行を追加します。[myconnection] account = "myaccount" user = "jdoe" password = "******" warehouse = "my-wh" database = "my_db" schema = "my_schema"
接続定義は、 snowflake.connector.connect メソッドで利用可能なものと同じ構成オプションをサポートします。
オプション: 以下のように、さらに接続を追加します。
[myconnection_test] account = "myaccount" user = "jdoe-test" password = "******" warehouse = "my-test_wh" database = "my_test_db" schema = "my_schema"
ファイルへの変更を保存します。
Pythonコードでは、以下と類似した接続名を
snowflake.connector.connect
に提供し、session
に追加します。session = Session.builder.config("connection_name", "myconnection").create()
詳細については、 構成ファイル をご参照ください。
接続パラメーターを指定して接続する¶
これらのパラメーター(例: account
、 user
、 role
、 warehouse
、 database
、 schema
など)の名前と値を含むディクショナリ(dict
)を構築します。
セッションを作成するには、
Snowflakeに接続するためのパラメーターの名前と値を含むPythonディクショナリ(
dict
)を作成します。このディクショナリを
Session.builder.configs
メソッドに渡して、これらの接続パラメーターを持つビルダーオブジェクトを返します。builder
のcreate
メソッドを呼び出して、セッションを確立します。
次の例では、接続パラメーターを含む dict
を使用して、新しいセッションを作成します。
connection_parameters = {
"account": "<your snowflake account>",
"user": "<your snowflake user>",
"password": "<your snowflake password>",
"role": "<your snowflake role>", # optional
"warehouse": "<your snowflake warehouse>", # optional
"database": "<your snowflake database>", # optional
"schema": "<your snowflake schema>", # optional
}
new_session = Session.builder.configs(connection_parameters).create()
account
パラメーターには、使用する アカウント識別子 を使用します。アカウント識別子にはsnowflakecomputing.comサフィックスが含まれていないことに注意してください。
注釈
この例は、セッションを作成する1つの方法を示していますが、プロキシサーバーや OAuth を使用した、デフォルトの認証方式、シングルサインオン(SSO)、多要素認証(MFA)、キーペア認証など、他にもいくつかの接続方法があります。詳細については、 PythonコネクタによるSnowflakeへの接続 をご参照ください。
ウェブブラウザーを介したシングルサインオン(SSO)の使用¶
シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合は、認証にブラウザーベースの SSO を使用するようにクライアントアプリケーションを構成できます。
これらのパラメーター(例: account
、 user
、 role
、 warehouse
、 database
、 authenticator
など)の名前と値を含むディクショナリ(dict
)を構築します。
セッションを作成するには、
Snowflakeに接続するためのパラメーターの名前と値を含むPythonディクショナリ(
dict
)を作成します。このディクショナリを
Session.builder.configs
メソッドに渡して、これらの接続パラメーターを持つビルダーオブジェクトを返します。builder
のcreate
メソッドを呼び出して、セッションを確立します。
次の例では、接続パラメーターを含む dict
を使用して、新しいセッションを作成します。 authenticator
オプションを externalbrowser
に設定します。
from snowflake.snowpark import Session
connection_parameters = {
"account": "<your snowflake account>",
"user": "<your snowflake user>",
"role":"<your snowflake role>",
"database":"<your snowflake database>",
"schema":"<your snowflake schema",
"warehouse":"<your snowflake warehouse>",
"authenticator":"externalbrowser"
}
session = Session.builder.configs(connection_parameters).create()
セッションを閉じる¶
クエリの実行にセッションを使用する必要がなくなり、現在実行中のクエリをキャンセルする場合は、Sessionオブジェクトのcloseメソッドを呼び出します。例:
new_session.close()