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.
Você pode gerar as configurações básicas para o arquivo de configuração TOML na Snowsight. Para obter mais informações, consulte Configuração de um cliente, driver, biblioteca ou aplicativo de terceiros para se conectar ao Snowflake.
Você também pode definir as configurações de conexão manualmente. Por exemplo, crie um arquivo de configuração localizado em ~/.snowflake/connections.toml
e adicione configurações de conexão semelhantes às 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
Os sublinhados não são compatíveis com a configuração account
. Se o identificador de contas incluir sublinhados, substitua-os por traços. 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
.
A biblioteca Snowpark Python não é instalada automaticamente como uma dependência de snowflake.core
. Para se conectar ao Snowflake usando o objeto do Snowpark Session
, siga estas etapas:
Para instalar o pacote
snowflake-snowpark-python
, execute o seguinte comando:pip install 'snowflake-snowpark-python>=1.5.0,<2.0.0'
Para criar uma conexão com o Snowflake, execute um código semelhante ao exemplo a seguir:
from snowflake.core import Root from snowflake.snowpark import Session session = Session.builder.config("connection_name", "myconnection").create() root = Root(session)
Neste exemplo, o código cria um objeto
Session
usando uma definição de conexão chamadamyconnection
, que é especificada em um arquivo de configuração. Usando o objetoSession
resultante, o código cria um objetoRoot
a partir do qual usar a API.
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
.
Você não precisa instalar a biblioteca do Python Connector separadamente. O pacote snowflake-connector-python
é instalado automaticamente como uma dependência quando você instala o pacote pai snowflake
.
O código no exemplo a seguir cria um objeto Connection
usando uma definição de conexão chamada myconnection
, especificada em um arquivo de configuração. 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()