Exemplo: Criar um formulário que grave no Snowflake¶
Este exemplo orienta você na criação de um app Streamlit in Snowflake que coleta a entrada do usuário por meio de um formulário e a grava em uma tabela do Snowflake. O app também lê os dados de volta para exibir todos os envios e usa st.user para rastrear quem enviou cada entrada.
O app usa um tempo de execução de contêiner. Antes de começar, certifique-se de ter concluído os pré-requisitos.
Configurar a tabela de destino¶
Este exemplo usa um banco de dados chamado crud_demo. Você pode substituir por qualquer banco de dados e esquema aos quais tenha acesso; basta atualizar as referências no código do app e SQL para que correspondam.
Crie uma tabela para armazenar os envios do formulário. Execute o seguinte SQL em uma planilha ou sessão SQL:
Escrever o código do app¶
Em sua máquina local, crie um arquivo chamado streamlit_app.py com o seguinte código. Se você planeja usar o Snowsight, pode colar este código no editor após criar o app.
Este app usa:
st.formpara coletar a entrada antes do envio, evitando novas execuções a cada interação com o widget.st.connection("snowflake").session()para obter uma sessão do Snowpark para gravar dados. Para obter mais informações, consulte Gerenciamento de segredos e configuração do app Streamlit.session.sql()em vez deconn.query()para ler os envios de volta.conn.query()armazena os resultados em cache por padrão; portanto, novas entradas não aparecerão até que o cache expire.session.sql()executa uma nova consulta a cada nova execução.st.user.user_namepara registrar quem enviou cada entrada. Para obter mais informações, consulte Personalizar seu app Streamlit com informações do usuário.
Declarar dependências¶
Este app usa apenas streamlit e a conexão Snowflake integrada; portanto, nenhuma dependência adicional é necessária.
Para obter mais informações, consulte Gerenciamento de dependências para o app Streamlit.
Implantar o app¶
Faça login no Snowsight.
No menu de navegação, selecione Projects » Streamlit.
Selecione + Streamlit App.
Insira
feedback_appcomo o nome do app.Selecione um banco de dados e um esquema.
Selecione Run on container e, em seguida, escolha um pool de computação e um warehouse de consultas.
Selecione Create.
No editor, substitua o código inicial pelo código do app acima.
Selecione Run.
Prepare os arquivos do app:
Crie o app Streamlit:
Para visualizar o app, faça login no Snowsight e, no menu de navegação, selecione Projects » Streamlit e depois escolha o seu app.
Nota
É necessário o Snowflake CLI versão 3.14.0 ou posterior. A versão 3.14+ utiliza a moderna sintaxe CREATE STREAMLIT por padrão.
Crie um diretório de projeto com a seguinte estrutura:
Crie um arquivo
snowflake.yml:Implante o app:
Experimente o app¶
Abra o app no seu navegador.
Preencha os campos do formulário e selecione Submit.
A tabela de feedback abaixo do formulário é atualizada para mostrar o novo envio, incluindo seu endereço de e-mail e um carimbo de data/hora.
Envie mais algumas entradas e, em seguida, tente filtrar ou classificar os dados na tabela.
Expandir o app¶
Experimente adicionar um botão de exclusão ao lado de cada linha ou um gráfico que mostre a classificação média por categoria. Por exemplo, adicione o seguinte após o dataframe:
Se você adicionar plotly, declare-o em um arquivo requirements.txt:
Para cenários de dependência mais complexos, você pode usar um arquivo pyproject.toml. Para obter mais informações, consulte Gerenciamento de dependências para o app Streamlit.
Limpeza¶
Para remover os recursos criados neste exemplo, execute o seguinte SQL:
Qual é o próximo passo?¶
Criar o app Streamlit: Conheça todas as opções para criar apps.
Personalizar seu app Streamlit com informações do usuário: Explore todos os atributos de usuário disponíveis por meio de
st.user.Gerenciamento de segredos e configuração do app Streamlit: Acesse segredos e serviços externos em seu app.
Compartilhando apps Streamlit in Snowflake: Compartilhe seu app com outros usuários.