Snowpark Pythonのセッションの作成

アプリケーションでSnowparkを使用するには、セッションを作成する必要があります。コードの記述に便利なように、パッケージやオブジェクトの名前をインポートすることもできます。

このトピックの内容:

セッションの作成

ライブラリを使用する最初のステップは、Snowflakeデータベースとのセッションを確立することです。

Sessionクラスをインポートします。

from snowflake.snowpark import Session
Copy

認証には、 Python用Snowflakeコネクタ がサポートするのと同じメカニズムを使用します。

Python用Snowflakeコネクタの connect 関数で使用するのと同じパラメーター(例: アカウント名、ユーザー名など)を使用して、Snowflakeデータベースとのセッションを確立します。詳細については、PythonコネクタAPIのドキュメントの 接続関数パラメーター をご参照ください。

connections.toml ファイルを使用した接続

接続構成ファイルに認証情報を追加するには、

  1. テキストエディターで connections.toml ファイルを開いて編集します。たとえば、Linuxの vi エディターでファイルを開く場合:

    $ vi connections.toml
    
    Copy
  2. 新しいSnowflake接続定義を追加します。

    たとえば、アカウント myaccount、ユーザー johndoe、パスワード認証情報とデータベース情報を持つ myconnection というSnowflake接続を追加するには、構成ファイルに以下の行を追加します。

    [myconnection]
    account = "myaccount"
    user = "jdoe"
    password = "******"
    warehouse = "my-wh"
    database = "my_db"
    schema = "my_schema"
    
    Copy

    接続定義は、 snowflake.connector.connect メソッドで利用可能なものと同じ構成オプションをサポートします。

  3. オプション: 以下のように、さらに接続を追加します。

    [myconnection_test]
    account = "myaccount"
    user = "jdoe-test"
    password = "******"
    warehouse = "my-test_wh"
    database = "my_test_db"
    schema = "my_schema"
    
    Copy
  4. ファイルへの変更を保存します。

  5. Pythonコードでは、以下と類似した接続名を snowflake.connector.connect に提供し、 session に追加します。

    session = Session.builder.config("connection_name", "myconnection").create()
    
    Copy

詳細については、 構成ファイル をご参照ください。

接続パラメーターを指定して接続する

これらのパラメーター(例: accountuserrolewarehousedatabaseschema など)の名前と値を含むディクショナリ(dict)を構築します。

セッションを作成するには、

  1. Snowflakeに接続するためのパラメーターの名前と値を含むPythonディクショナリ(dict)を作成します。

  2. このディクショナリを Session.builder.configs メソッドに渡して、これらの接続パラメーターを持つビルダーオブジェクトを返します。

  3. buildercreate メソッドを呼び出して、セッションを確立します。

次の例では、接続パラメーターを含む 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()
Copy

account パラメーターには、使用する アカウント識別子 を使用します。アカウント識別子にはsnowflakecomputing.comサフィックスが含まれていないことに注意してください。

注釈

この例は、セッションを作成する1つの方法を示していますが、プロキシサーバーや OAuth を使用した、デフォルトの認証方式、シングルサインオン(SSO)、多要素認証(MFA)、キーペア認証など、他にもいくつかの接続方法があります。詳細については、 PythonコネクタによるSnowflakeへの接続 をご参照ください。

ウェブブラウザーを介したシングルサインオン(SSO)の使用

シングルサインオン(SSO)を使用するようにSnowflakeを構成 している場合は、認証にブラウザーベースの SSO を使用するようにクライアントアプリケーションを構成できます。

これらのパラメーター(例: accountuserrolewarehousedatabaseauthenticator など)の名前と値を含むディクショナリ(dict)を構築します。

セッションを作成するには、

  1. Snowflakeに接続するためのパラメーターの名前と値を含むPythonディクショナリ(dict)を作成します。

  2. このディクショナリを Session.builder.configs メソッドに渡して、これらの接続パラメーターを持つビルダーオブジェクトを返します。

  3. buildercreate メソッドを呼び出して、セッションを確立します。

次の例では、接続パラメーターを含む 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()
Copy

セッションを閉じる

クエリの実行にセッションを使用する必要がなくなり、現在実行中のクエリをキャンセルする場合は、Sessionオブジェクトのcloseメソッドを呼び出します。例:

new_session.close()
Copy