Desenvolvimento e execução de código nos Snowflake Notebooks¶
Este tópico descreve como escrever e executar código nos Snowflake Notebooks.
Noções básicas sobre células de notebooks¶
Esta seção apresenta algumas operações básicas de células. Quando você cria um notebook, três células de exemplo são exibidas. Você pode modificar essas células ou adicionar novas.
Crie uma nova célula:¶
Snowflake Notebooks oferecem suporte a três tipos de células: SQL, Python e Markdown. Para criar uma nova célula, você pode passar o mouse sobre uma célula existente ou rolar até a parte inferior do notebook e selecionar um dos botões para o tipo de célula que deseja adicionar.
Você pode alterar a linguagem da célula a qualquer momento após ela ter sido criada usando um dos dois métodos:
Selecione o menu suspenso de idiomas e escolha um idioma diferente.
Como mover células¶
Você pode mover uma célula arrastando e soltando-a com o mouse ou usando o menu de ações:
(Opção 1) Passe o mouse sobre a célula existente que deseja mover. Selecione o ícone de arrastar e soltar com o mouse e mova a célula para seu novo local.
(Opção 2) Selecione o menu de reticências verticais
(ações). Em seguida, selecione a ação apropriada.
Nota
Para mover o foco entre as células, use as setas para cima e para baixo.
Como excluir uma célula¶
Para excluir uma célula, siga estas etapas em um notebook:
Selecione Delete.
Selecione Delete novamente para confirmar.
Você pode usar um atalho de teclado para excluir uma célula também.
Para considerações ao usar Python e células SQL, consulte Considerações para execução de notebooks.
Execução de células Python e SQL nos Snowflake Notebooks¶
Para executar células Python e SQL nos Snowflake Notebooks, você pode:
Executar uma única célula: escolha esta opção ao fazer atualizações de código frequentes.
Executar todas as células em um notebook em ordem sequencial: escolha esta opção antes de apresentar ou compartilhar um notebook para garantir que os destinatários consultem as informações mais atualizadas.
Pressione CMD + Shift + Return em um teclado Mac, ou CTRL + Shift + Enter em um teclado Windows.
Selecione Run all.
Executar uma célula e avançar para a próxima célula: escolha esta opção para executar uma célula e avançar para a próxima célula mais rapidamente.
Pressione Shift + Return em um teclado Mac, ou Shift + Enter em um teclado Windows.
Selecione o menu de reticências verticais (mais ações) para uma célula e escolha Run cell and advance.
Executar tudo acima: escolha esta opção ao executar uma célula que faça referência aos resultados de células anteriores.
Selecione o menu de reticências verticais (mais ações) para uma célula e escolha Run all above.
Executar tudo abaixo: escolha esta opção ao executar uma célula da qual células posteriores dependem. Esta opção executa a célula atual e todas as células seguintes.
Selecione o menu de reticências verticais (mais ações) para uma célula e escolha Run all below.
Quando uma célula está em execução, outras solicitações de execução são enfileiradas e serão executadas assim que a célula em execução ativa terminar.
Como inspecionar o status de uma célula¶
O status de execução da célula é indicado pelas cores exibidas pela célula. Essa cor de status é exibida em dois lugares: na parede à esquerda da célula e no mapa de navegação da célula à direita.
Cor do status da célula:
Ponto azul – Indica que uma célula foi modificada, mas ainda não foi executada.
Vermelho – Ocorreu um erro.
Verde – A execução foi bem-sucedida.
Verde em movimento – A célula está em execução no momento.
Cinza piscando – A célula está aguardando para ser executada. Esse status ocorre quando várias células são acionadas para execução.
Nota
As células Markdown não mostram nenhum status.
Depois que uma célula termina de ser executada, o tempo que levou para ser executada é exibido na parte superior da célula. Selecione este texto para ver a janela de detalhes da execução. Você pode visualizar os detalhes da execução, incluindo os horários de início e término da execução e o tempo total decorrido.
As células SQL contêm informações adicionais, como o warehouse usado para executar a consulta, as linhas retornadas e um hiperlink para a página do ID da consulta.
Como parar uma célula em execução¶
Para interromper a execução de qualquer célula de código que esteja em execução, selecione o botão de parar no canto superior direito da célula.
Isso interromperá a execução da célula que está em execução no momento e de todas as células subsequentes que foram agendadas para execução.
Como formatar texto com Markdown¶
Para incluir Markdown em seu notebook, adicione uma célula Markdown:
Use um atalho de teclado e selecione Markdown ou + Markdown.
Selecione o ícone de lápis Edit markdown ou clique duas vezes na célula e comece a escrever Markdown.
Você pode digitar Markdown válido para formatar uma célula de texto. À medida que você digita, o texto formatado aparece abaixo da sintaxe Markdown.

Para exibir apenas o texto formatado, selecione o ícone de marca de seleção Done editing.

Nota
As células Markdown atualmente não oferecem suporte à renderização de HTML.
Noções básicas de Markdown¶
Esta seção descreve a sintaxe básica do Markdown para introduzir o assunto.
Cabeçalhos
Nível de título |
Sintaxe Markdown |
Exemplo |
---|---|---|
Nível superior |
# Top-level Header
|
![]() |
2º nível |
## 2nd-level Header
|
![]() |
3º nível |
### 3rd-level Header
|
![]() |
Formatação de texto em linha
Formato de texto |
Sintaxe Markdown |
Exemplo |
---|---|---|
Itálico |
*italicized text*
|
![]() |
Negrito |
**bolded text**
|
![]() |
Link |
[Link text](url)
|
![]() |
Listas
Tipo de lista |
Sintaxe Markdown |
Exemplo |
---|---|---|
Lista ordenada |
1. first item
2. second item
1. Nested first
2. Nested second
|
![]() |
Lista não ordenada |
- first item
- second item
- Nested first
- Nested second
|
![]() |
Formatação de código
Linguagem |
Sintaxe Markdown |
Exemplo |
---|---|---|
Python |
```python
import pandas as pd
df = pd.DataFrame([1,2,3])
```
|
![]() |
SQL |
```sql
SELECT * FROM MYTABLE
```
|
![]() |
Incorporar imagens
Tipo de arquivo |
Sintaxe Markdown |
Exemplo |
---|---|---|
Imagem |

|
![]() |
Para um notebook que demonstra esses exemplos de Markdown, consulte a seção Células de Markdown do notebook de histórias de dados visuais.
Compreensão das saídas de células¶
Ao executar uma célula Python, os seguintes tipos de saída de célula são exibidos nos resultados:
Quaisquer resultados gravados no console, como print(), logs, erros e avisos.
Os DataFrames são impressos automaticamente com a exibição de tabela interativa do Streamlit,
st.dataframe()
.Os tipos de exibição de dataframe compatíveis incluem pandas DataFrame, Snowpark DataFrames e tabelas Snowpark.
Para Snowpark, os DataFrames impressos são avaliados imediatamente, sem a necessidade de chamar
.show()
. Se você preferir não avaliar o dataframe imediatamente, por exemplo, ao executar o notebook no modo não interativo, Snowflake recomenda remover as instruções de impressão do DataFrame para acelerar o tempo de execução geral do código Snowpark.
As exibições são renderizadas em saídas. Para saber mais sobre como visualizar seus dados nos Snowflake Notebooks, consulte Visualização de dados no Snowflake Notebooks.
Além disso, você pode acessar os resultados de sua consulta SQL em Python e vice-versa. Consulte Células de referência e variáveis nos Snowflake Notebooks.
Células de referência e variáveis nos Snowflake Notebooks¶
Você pode referenciar os resultados das células anteriores em uma célula do notebook. Por exemplo, para referenciar o resultado de uma célula SQL ou o valor de uma variável Python, consulte as seguintes tabelas:
Nota
O nome da célula da referência diferencia maiúsculas de minúsculas e deve corresponder exatamente ao nome da célula referenciada.
Saída de referência SQL em células Python:
Tipo de célula de referência |
Tipo de célula atual |
Sintaxe de referência |
Exemplo |
---|---|---|---|
SQL |
Python |
|
Converter uma tabela de resultados SQL em um Snowpark DataFrame. Se você tiver o seguinte em uma célula SQL nomeada SELECT 'FRIDAY' as SNOWDAY, 0.2 as CHANCE_OF_SNOW
UNION ALL
SELECT 'SATURDAY',0.5
UNION ALL
SELECT 'SUNDAY', 0.9;
Você pode referenciar a célula para acessar o resultado SQL: snowpark_df = cell1.to_df()
Converta o resultado em um pandas DataFrame: my_df = cell1.to_pandas()
|
Referência de variáveis em código SQL:
Importante
No código SQL, você só pode referenciar variáveis Python do tipo string
. Você não pode referenciar um Snowpark DataFrame, pandas DataFrame ou outro formato DataFrame nativo do Python.
Tipo de célula de referência |
Tipo de célula atual |
Sintaxe de referência |
Exemplo |
---|---|---|---|
SQL |
SQL |
|
Por exemplo, em uma célula SQL nomeada SELECT * FROM {{cell2}} where PRICE > 500
|
Python |
SQL |
|
Por exemplo, em uma célula Python nomeada c = "USA"
Você pode referenciar o valor da variável SELECT * FROM my_table WHERE COUNTRY = {{c}}
|
Considerações para execução de notebooks¶
Os notebooks são executados usando os direitos do chamador. Para considerações adicionais, consulte Alteração do contexto de sessão para um notebook.
Você pode importar bibliotecas Python para usar em um notebook. Para obter mais detalhes, consulte Importação de pacotes Python para uso em notebooks.
Ao referenciar objetos em células SQL, você deve usar os nomes de objetos totalmente qualificados, a menos que esteja referenciando nomes de objetos em um banco de dados ou esquema especificado. Consulte Alteração do contexto de sessão para um notebook.
Os rascunhos do notebook são salvos a cada três segundos.
Após uma hora de inatividade (sem edição de código ou execução de consultas), o kernel do notebook será desligado. A Snowflake também recomenda que você verifique os parâmetros do seu warehouse. Se STATEMENT_TIMEOUT_IN_SECONDS ou STATEMENT_QUEUED_TIMEOUT_IN_SECONDS for definido como um valor pequeno, o notebook poderá desligar ou não iniciar.
Você pode usar a integração com o Git para manter versões do notebook.
Os resultados das células do notebook são armazenados em cache entre as sessões. Reabrir um notebook exibe os resultados anteriores da última vez que você executou o notebook usando a UI. Os resultados armazenados em cache só são visíveis para o mesmo usuário que executou o notebook.
BEGIN … END (Script Snowflake) não é compatível em células SQL. Em vez disso, use o método Session.sql().collect() em uma célula Python para executar o bloco de script. Encadeie a chamada
sql
com uma chamada paracollect
para executar imediatamente a consulta SQL.O código a seguir executa um bloco de script Snowflake usando o método
session.sql().collect()
:from snowflake.snowpark.context import get_active_session session = get_active_session() code_to_run = """ BEGIN CALL TRANSACTION_ANOMALY_MODEL!DETECT_ANOMALIES( INPUT_DATA => SYSTEM$REFERENCE('TABLE', 'ANOMALY_INFERENCE'), TIMESTAMP_COLNAME =>'DATE', TARGET_COLNAME => 'TRANSACTION_AMOUNT', CONFIG_OBJECT => {'prediction_interval': 0.95} ); LET x := SQLID; CREATE TABLE ANOMALY_PREDICTIONS AS SELECT * FROM TABLE(RESULT_SCAN(:x)); END; """ data = session.sql(code_to_run).collect(block=True);