Conexão ao Snowflake com a Snowflake Python API

Antes de poder executar ações com a Snowflake Python API, você deve definir uma conexão com o Snowflake. Com a conexão, você pode criar um objeto Root para acesso aos recursos modelados pela API.

Especificação das propriedades de conexão

Você pode definir uma conexão com o Snowflake usando um dos seguintes mecanismos:

Conexão usando um dicionário Python

Você pode especificar os valores necessários para se conectar ao Snowflake usando um dicionário Python. Ao se conectar, você passa esse dicionário como argumento para a função ou método que está usando para se conectar.

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

Conexão usando um arquivo de configuração

Você pode especificar definições de conexão em um arquivo de configuração TOML. Isso elimina a necessidade de definir explicitamente uma conexão com o Snowflake em seu código.

Por exemplo, crie um arquivo de configuração localizado em ~/.snowflake/connections.toml e adicione parâmetros de conexão semelhantes aos seguintes:

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

Neste exemplo, você define uma conexão Snowflake chamada myconnection com as credenciais da conta test_account, do usuário test_user e da senha, bem como informações do banco de dados.

As definições de conexão oferecem suporte às mesmas opções de configuração disponíveis no Conector Python do Snowflake.

Conexão e criação de um objeto Root

Usando as propriedades de conexão especificadas, você pode criar uma conexão com o Snowflake. Com a conexão, você pode criar um objeto Root da Snowflake Python API para começar a usar a API.

Você pode se conectar usando um dos seguintes objetos:

Conexão a uma Session do Snowpark

Se você estiver usando a Snowpark API para Python, poderá criar uma conexão com o Snowflake usando seu objeto snowflake.snowpark.Session.

O código no exemplo a seguir usa parâmetros de conexão definidos em um arquivo de configuração para criar uma conexão com o Snowflake. Usando o objeto Session resultante, o código cria um objeto Root a partir do qual usar a API.

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

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

Para obter mais informações sobre a criação de uma Session, consulte Como criar uma sessão para o Snowpark Python.

Conexão com um conector Python Connection

Se estiver usando o conector Snowflake para Python, você poderá criar uma conexão com o Snowflake usando sua função snowflake.connector.connect. A função retorna um objeto Connection.

O código no exemplo a seguir usa parâmetros de conexão definidos em um arquivo de configuração para criar uma conexão com o Snowflake. Usando o objeto Connection resultante, o código cria um objeto Root a partir do qual usar a API.

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

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

Para obter mais informações sobre o conector Snowflake para a API de Python, consulte API do conector Python.

Uso do objeto Root:

Com um objeto Root criado a partir de sua conexão com o Snowflake, você pode acessar objetos e métodos da Snowflake Python API. O objeto Root é a raiz da árvore de recursos modelada pela Snowflake Python API. Você usa o objeto Root para interagir com objetos Snowflake representados pela API.

O código no exemplo a seguir usa o objeto Root para acessar objetos Snowflake para retomar a tarefa chamada mytask. A tarefa está no esquema denominado myschema, que está no banco de dados denominado mydb. O código usa os métodos databases, schemas e tasks para obter um objeto que representa esta tarefa.

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

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