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