Snowflake Python API を使用してSnowflakeに接続する¶
Snowflake Python API でアクションを実行する前に、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",
}
構成ファイルを使用して接続する¶
接続定義を TOML 構成ファイル で指定できます。これにより、コード内でSnowflakeへの接続を明示的に定義する必要がなくなります。
たとえば、 ~/.snowflake/connections.toml
に構成ファイルを作成し、以下のような接続パラメーターを追加するとします。
[myconnection]
account = "test_account"
user = "test_user"
password = "******"
role = "test_role"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
この例では、アカウント test_account
、ユーザー test_user
、パスワードの認証情報、そしてデータベース情報を持つ myconnection
というSnowflake接続を定義します。
接続定義は、 Snowflake Pythonコネクタ で利用可能なものと同じ構成オプションをサポートします。
Root
オブジェクトを接続し、作成する¶
指定した接続プロパティを使用して、Snowflakeへの接続を作成できます。この接続で、Snowflake Python API Root
オブジェクトを作成し、API の使用を開始することができます。
次のオブジェクトの1つを使用して接続することができます。
Snowpark Session
を使用して接続する¶
Python用Snowpark API を使用している場合、その snowflake.snowpark.Session
オブジェクトを使用してSnowflakeへの接続を作成できます。
次の例のコードは、構成ファイルで定義された接続パラメーターを使用して、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)
Session
の作成の詳細については、 Snowpark Pythonのセッションの作成 をご参照ください。
Pythonコネクタ Connection
を使用して接続する¶
Python用Snowflakeコネクタ を使用している場合は、その snowflake.connector.connect
関数を使用してSnowflakeへの接続を作成できます。関数は Connection
を返します。
次の例のコードは、構成ファイルで定義された接続パラメーターを使用して、Snowflakeへの接続を作成します。コードは、できあがった Connection
オブジェクトを使用して、 Root
オブジェクトを作成し、そこから API を使用します。
from snowflake.connector import connect
from snowflake.core import Root
connection = connect(connection_name="myconnection")
root = Root(connection)
Python用Snowflakeコネクタ API の詳細については、 Pythonコネクタ API をご参照ください。
Root
オブジェクトを使用する¶
Snowflakeへの接続から作成された Root
オブジェクト で、Snowflake Python API のオブジェクトやメソッドにアクセスすることができます。 Root
オブジェクトは、Snowflake Python API によってモデル化されたリソースツリーのルートです。 Root
オブジェクトを使用して、 API で表されるSnowflakeオブジェクトと対話します。
次の例のコードでは、 Root
オブジェクトを使用して Snowflakeオブジェクトにアクセスし、 mytask
という名前のタスクを再開します。タスクは mydb
というデータベース内の myschema
というスキーマにあります。このコードでは databases
、 schemas
、 tasks
メソッドを使用して、このタスクを表すオブジェクトを取得します。
from snowflake.core import Root
from snowflake.core.task import Task
tasks = root.databases["mydb"].schemas["myschema"].tasks
mytask = tasks["mytask"]
mytask.resume()