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",
}
構成ファイルを使用した接続¶
接続定義を TOML 構成ファイル で指定できます。これにより、コード内でSnowflakeへの接続を明示的に定義する必要がなくなります。
たとえば、 ~/.snowflake/connections.toml
に構成ファイルを作成し、以下のような接続パラメーターを追加するとします。
[myconnection]
account = "test_account"
user = "test_user"
password = "******"
warehouse = "test_warehouse"
database = "test_database"
schema = "test_schema"
この例では、アカウント 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)
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)
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()