Snowflake Python API によるSnowflakeへの接続

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

注釈

Snowflakeへの接続を作成する手段は、接続定義のメカニズムがより簡単かつ安全になるにつれて変更される可能性があります。

接続プロパティの指定

以下のいずれかを使用して、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"],
    "database": "test_database",
    "warehouse": "test_warehouse",
    "schema": "test_schema",
}
Copy

構成ファイルを使用した接続

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

たとえば、 ~/.snowflake/connections.toml に構成ファイルを作成し、以下のような接続パラメーターを追加するとします。

[myconnection]
account = "test_account"
user = "test_user"
password = "******"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
Copy

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

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

Root オブジェクトの接続と作成

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

次のいずれかを使用して接続することができます。

Snowpark Session による接続

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

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

次の例のコードは、構成ファイルで定義された接続パラメーターを使用して、Snowflakeへの接続を作成します。出来上がった Session オブジェクトを使って、コードは Root オブジェクトを作成し、そこから API を使用します。

from snowflake.core import Root
from snowflake.snowpark import Session

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

Pythonコネクタ Connection による接続

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

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

次の例のコードは、構成ファイルで定義された接続パラメーターを使用して、Snowflakeへの接続を作成します。出来上がった Connection オブジェクトを使って、コードは Root オブジェクトを作成し、そこから API を使用します。

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

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

Root オブジェクトの使用

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

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

from snowflake.core import Root
from snowflake.core.task import Task

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