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.

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"
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

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:

  1. Para instalar o pacote snowflake-snowpark-python, execute o seguinte comando:

    pip install 'snowflake-snowpark-python>=1.5.0,<2.0.0'
    
    Copy
  2. 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)
    
    Copy

    Neste exemplo, o código cria um objeto Session usando uma definição de conexão chamada myconnection, que é especificada em um arquivo de configuração. Usando o objeto Session resultante, o código cria um objeto Root 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)
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