Trabalho com arquivos nos Snowflake Notebooks¶
Este tópico descreve como você pode carregar e acessar arquivos de seus Snowflake Notebooks.
Arquivos em ambientes de notebook¶
Ao criar um novo notebook, o arquivo principal do notebook é criado. É possível visualizar esse arquivo na guia Files no lado esquerdo do notebook. Os arquivos são armazenados em um estágio interno que representa o ambiente do notebook e são persistentes entre sessões.
Arquivo principal do notebook: por padrão, esse arquivo é nomeado
notebook_app.ipynb
. Se seu notebook for criado a partir do Git ou carregado de outro arquivo.ipynb
, o nome do arquivo pode ser diferente.environment.yml: este arquivo é gerado automaticamente depois que você instala um novo pacote. Ele descreve o ambiente do notebook, inclusive quais pacotes estão instalados.
Para inspecionar o conteúdo do arquivo, selecione o nome do arquivo para exibir uma visualização do conteúdo do arquivo.
Sistema de arquivos temporário em um ambiente de notebook¶
Seu notebook tem um sistema de arquivos temporário que fica disponível durante uma sessão ativa. Todos os arquivos criados durante a sessão são salvos neste estágio temporário. Os arquivos no estágio temporário não estarão disponíveis depois que você encerrar a sessão atual do notebook.
O código a seguir cria um arquivo chamado myfile.txt
e escreve algum texto nele:
with open("myfile.txt",'w') as f:
f.write("abc")
f.close()
Você pode acessar este arquivo durante a mesma sessão em que ele foi criado.
Use o método listdir()
para listar arquivos no estágio temporário:
import os
os.listdir()
Agora desconecte-se de sua sessão atual e reconecte-se. Experimente o método listdir()
novamente e o arquivo myfile.txt
não será listado.
Persistência de arquivos entre sessões do notebook¶
Para que seus arquivos sejam persistentes em todas as sessões do notebook:
Armazene arquivos em um estágio Snowflake¶
Se você quiser que seus arquivos sejam persistentes entre sessões e referenciem os arquivos em diferentes notebooks, use um estágio Snowflake para armazená-los. Você pode carregar arquivos de sua máquina local para o estágio e usar operações de arquivo da Snowpark API para acessá-los a partir de seu notebook.
Exemplo¶
Este exemplo mostra como criar um estágio e armazenar e recuperar arquivos dele em seu notebook.
Para criar um estágio chamado permanent_stage
, execute o seguinte código em um célula SQL:
CREATE OR REPLACE STAGE permanent_stage;
Em seguida, crie um arquivo chamado myfile.txt
com algum texto e execute o seguinte código em uma célula Python:
with open("myfile.txt",'w') as f:
f.write("abc")
f.close()
Observe que neste ponto, myfile.txt
é armazenado no sistema de arquivos temporário do notebook. Para mover isso para o estágio, você pode usar a Snowpark API para carregar o myfile.txt
para seu permanent_stage
:
from snowflake.snowpark.context import get_active_session
session = get_active_session()
put_result = session.file.put("myfile.txt","@PERMANENT_STAGE", auto_compress= False)
put_result[0].status
Se você desconectar a sessão e se reconectar, poderá executar o seguinte código em uma célula SQL para verificar se o arquivo ainda aparece:
LS @permanent_stage;
Como adicionar arquivos a um notebook a partir de um computador local¶
Você pode carregar arquivos do computador local para serem usados no notebook Snowflake.
Faça login no Snowsight.
Selecione Projects » Notebooks.
Na aba Files, ao lado do explorador de objetos de banco de dados, selecione o ícone
e selecione os arquivos para upload.
Navegue e selecione ou arraste e solte arquivos na caixa de diálogo.
Selecione Upload para enviar seu arquivo.
Os arquivos enviados são salvos no estágio interno do notebook e são persistentes entre as sessões. Você pode referenciar arquivos enviados usando seus caminhos locais do arquivo do notebook. Consulte Referência a arquivos no Notebooks.
Nota
Para notebooks em tempo de execução de contêineres: se a sessão do notebook estiver ativa quando o arquivo for carregado, será necessário reiniciar a sessão do notebook para que o arquivo carregado fique acessível. A Snowflake recomenda adicionar todos os arquivos necessários antes de iniciar sua sessão para uso em seu notebook.
Sincronização com arquivos do Git¶
Se o notebook estiver conectado ao Git, quaisquer arquivos na mesma pasta do Git que o notebook serão exibidos na guia Files.
Para obter mais informações sobre como trabalhar com arquivos no Git, consulte Sincronização dos notebooks Snowflake com um repositório Git.
Referência a arquivos no Notebooks¶
Cada arquivo no ambiente de notebook tem um caminho de estágio e um caminho local. Você pode usar esses caminhos para referenciar o arquivo no notebook.
Referência a caminho local com Python¶
Em geral, as bibliotecas Python usam o caminho local do arquivo como referência ao arquivo. Por exemplo, o código a seguir acessa o arquivo data.csv
carregado no mesmo diretório em que este notebook está sendo executado:
import pandas as pd
df = pd.read_csv("data.csv")
Referência ao caminho do estágio com SQL¶
Com SQL, o Snowflake faz referência a arquivos com base no caminho de estágio. O caminho de estágio para um arquivo em seu notebook é baseado no seguinte formato:
snow://notebook/<DATABASE>.<SCHEMA>.<NOTEBOOK_NAME>/versions/live/<file_name>
Para encontrar o caminho de estágio associado aos arquivos no estágio de seu notebook usando o menu Copy path:
Faça login no Snowsight.
Selecione Projects » Notebooks.
Na aba Files, ao lado do explorador de objetos de banco de dados, selecione o ícone
ao lado do arquivo cujo caminho você deseja obter.
Selecione Copy path. Isso copia o caminho de arquivo para sua área de transferência.
Em seguida, você pode usar a seguinte instrução SQL para listar os detalhes do arquivo de estágio:
LIST 'snow://notebook/<DATABASE>.<SCHEMA>.<NOTEBOOK_NAME>/versions/live/data.csv'
Requisitos de controle de acesso¶
Você precisa usar uma função com os seguintes privilégios para acessar arquivos de um estágio em um notebook.
Privilégio |
Objeto |
---|---|
USAGE |
Estágio que contém os arquivos. |
Limitações e considerações¶
Carregue os arquivos antes de iniciar sua sessão de notebook. Se você carregar arquivos após o início de uma sessão, será necessário reiniciá-la para acessar os arquivos.
Não há restrições quanto aos tipos de arquivo para upload.
O limite de tamanho por arquivo é de até 250 MB.
Os arquivos gravados em um caminho local no notebook não são exibidos na guia Files. No entanto, você ainda pode usar o arquivo no código do notebook.
Por exemplo, se você criar um arquivo,
data.json
, poderá acessá-lo conforme mostrado no código a seguir, mesmo que ele não esteja visível na UI Files:# Generate sample JSON file with open("data.json", "w") as f: f.write('{"fruit":"apple", "size":3.4, "weight":1.4},{"fruit":"orange", "size":5.4, "weight":3.2}') # Read from local JSON file (File doesn't show in UI) df = pd.read_json("data.json",lines=True) df
A abertura de outro arquivo
.ipynb
que não seja o arquivo principal do notebook não é compatível.