Conexão ao Snowflake com o Snowflake Python APIs

Antes de poder executar ações com o Snowflake Python APIs, é necessário 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 nomeada myconnection com a conta test-account, usuário test_user, credenciais de senha e informações do banco de dados.

Nota

O parâmetro account não oferece suporte a identificadores de conta com sublinhados. Você deve especificar um identificador de conta com traços no lugar de sublinhados. Para obter mais informações, consulte Nome da conta na sua organização.

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, é possível criar um objeto Snowflake Python APIs Root para começar a usar com 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, é possível acessar objetos e métodos do Snowflake Python APIs. O objeto Root é a raiz da árvore de recurso modelada pela 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.

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