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",
}
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"
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)
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)
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()