Snowflake Python APIs によるSnowflakeへの接続

Snowflake Python APIs でアクションを実行する前に、Snowflakeへの接続を定義する必要があります。この接続で、 Root オブジェクトを作成して、 API でモデル化されたリソースにアクセスすることができます。

接続プロパティを指定する

以下のメカニズムの1つを使用して、Snowflakeへの接続を定義できます。

Pythonディクショナリを使用して接続する

Pythonディクショナリを使用することで、Snowflakeへの接続に必要な値を指定することができます。接続時は、このディクショナリを接続に使用する関数やメソッドの引数として渡します。

import os

CONNECTION_PARAMETERS = {
    "account": os.environ["snowflake_account_demo"],
    "user": os.environ["snowflake_user_demo"],
    "password": os.environ["snowflake_password_demo"],
    "role": "test_role",
    "database": "test_database",
    "warehouse": "test_warehouse",
    "schema": "test_schema",
}
Copy

構成ファイルを使用して接続する

接続定義を TOML 構成ファイル で指定できます。これにより、コード内でSnowflakeへの接続を明示的に定義する必要がなくなります。

TOML の構成ファイルの基本設定は、 Snowsight で生成できます。詳細については、 Snowflakeに接続するためのクライアント、ドライバー、ライブラリ、またはサードパーティアプリケーションの構成 をご参照ください。

接続設定は手動で構成することもできます。例えば、 ~/.snowflake/connections.toml に構成ファイルを作成し、以下のような接続設定を追加します。

[myconnection]
account = "test-account"
user = "test_user"
password = "******"
role = "test_role"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
Copy

この例では、アカウント test-account、ユーザー test_user、パスワードの認証情報、そしてデータベース情報を持つ myconnection という名前付きのSnowflake接続を定義します。

注釈

アンダースコアは account の設定ではサポートされていません。 アカウント識別子 にアンダースコアが含まれている場合は、ダッシュに置き換えてください。詳細については、 組織のアカウント名 をご参照ください。

接続定義は、 Snowflake Pythonコネクタ で利用可能なものと同じ構成オプションをサポートします。

Root オブジェクトを接続し、作成する

指定した接続プロパティを使用して、Snowflakeへの接続を作成できます。この接続で Snowflake Python APIs Root オブジェクトを作成し、API の使用を開始することができます。

次のオブジェクトの1つを使用して接続することができます。

Snowpark Session を使用して接続する

Python用Snowpark API を使用している場合、その snowflake.snowpark.Session オブジェクトを使用してSnowflakeへの接続を作成できます。

Snowpark Pythonライブラリは snowflake.core の依存関係として自動的にはインストールされません。Snowpark Session オブジェクトを使用してSnowflakeに接続するには、以下の手順に従います。

  1. snowflake-snowpark-python パッケージをインストールするには、以下のコマンドを実行します。

    pip install 'snowflake-snowpark-python>=1.5.0,<2.0.0'
    
    Copy
  2. Snowflakeへの接続を作成するには、次の例のようなコードを実行します。

    from snowflake.core import Root
    from snowflake.snowpark import Session
    
    session = Session.builder.config("connection_name", "myconnection").create()
    root = Root(session)
    
    Copy

    この例では、コードは構成ファイルで指定された myconnection という名前の接続定義を使用して Session オブジェクトを作成します。出来上がった Session オブジェクトを使って、コードは Root オブジェクトを作成し、そこから API を使用します。

Session の作成の詳細については、 Snowpark Pythonのセッションの作成 をご参照ください。

Pythonコネクタ Connection を使用して接続する

Python用Snowflakeコネクタ を使用している場合は、その snowflake.connector.connect 関数を使用してSnowflakeへの接続を作成できます。関数は Connection を返します。

Python Connectorライブラリを別途インストールする必要はありません。 snowflake 親パッケージをインストールすると、依存関係として snowflake-connector-python パッケージが自動的にインストールされます。

次の例のコードは、構成ファイルで指定された myconnection という接続定義を使用して Connection オブジェクトを作成します。コードは、できあがった Connection オブジェクトを使用して、 Root オブジェクトを作成し、そこから API を使用します。

from snowflake.connector import connect
from snowflake.core import Root

connection = connect(connection_name="myconnection")
root = Root(connection)
Copy

Python用Snowflakeコネクタ API の詳細については、 Pythonコネクタ API をご参照ください。

Root オブジェクトを使用する

Snowflakeへの接続から作成された Root オブジェクトで、 Snowflake Python APIs のオブジェクトやメソッドにアクセスすることができます。 Root オブジェクトは、API によってモデル化されたリソースツリーのルートです。 Root オブジェクトを使用して、 API で表されるSnowflakeオブジェクトと対話します。

次の例のコードでは、 Root オブジェクトを使用して Snowflakeオブジェクトにアクセスし、 mytask という名前のタスクを再開します。タスクは mydb というデータベース内の myschema というスキーマにあります。このコードでは databasesschemastasks メソッドを使用して、このタスクを表すオブジェクトを取得します。

tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()
Copy