Sobre a Streamlit in Snowflake¶
Este tópico descreve como usar Streamlit in Snowflake para desenvolver e executar aplicativos Streamlit.
Sobre a Streamlit in Snowflake¶
Streamlit é uma biblioteca Python de código aberto que facilita a criação e o compartilhamento de aplicativos da web personalizados para aprendizado de máquina e ciência de dados. Ao usar o Streamlit, você pode criar e implantar rapidamente aplicativos de dados poderosos. Para obter mais informações sobre a biblioteca de código aberto, consulte a documentação da biblioteca Streamlit.
Streamlit in Snowflake ajuda os desenvolvedores a criar, implantar e compartilhar aplicativos Streamlit com segurança na nuvem de dados do Snowflake. Usando Streamlit in Snowflake, você pode criar aplicativos que processam e usam dados no Snowflake sem mover dados ou código do aplicativo para um sistema externo.
Pré-requisitos para o uso do Streamlit in Snowflake¶
Para usar Streamlit in Snowflake certifique-se de atender aos seguintes pré-requisitos:
Revise as limitações e recursos não suportados.
Revise os privilégios necessários para criar e usar um aplicativo Streamlit.
Aceite os Termos de Serviço do Anaconda. Para usar Streamlit in Snowflake e os pacotes fornecidos pela Snowflake no Anaconda, você deve confirmar os Termos de terceiros da Snowflake. Consulte Como usar pacotes de terceiros do Anaconda para obter informações sobre como usar esses pacotes.
Configure seu firewall para permitir o tráfego de
*.snowflake.app
. Consulte Lista de permissões de firewall para obter mais informações.
Privilégios necessários para criar e usar um aplicativo Streamlit¶
Dentro de Streamlit in Snowflake, um aplicativo Streamlit é um objeto protegível que segue a estrutura de controle de acesso Snowflake. Os aplicativos Streamlit usam um modelo de permissão baseado nos direitos do proprietário. Consulte Noções básicas sobre os direitos do proprietário e aplicativos Streamlit in Snowflake para obter mais detalhes.
As seções a seguir descrevem os privilégios necessários para criar e visualizar um aplicativo Streamlit no Snowflake.
Privilégios necessários para criar um aplicativo Streamlit¶
Os aplicativos Streamlit são objetos no nível do esquema. Para criar e editar um aplicativo Streamlit usando Streamlit in Snowflake, você deve usar uma função que tenha os seguintes privilégios concedidos no esquema e no banco de dados que contém o aplicativo Streamlit:
USAGE
CREATE STREAMLIT
CREATE STAGE
Use o comando GRANT <privilégios> para conceder esses privilégios a uma função, conforme mostrado nos exemplos a seguir:
GRANT USAGE ON SCHEMA mydb.myschema TO ROLE myrole; GRANT USAGE ON DATABASE mydb TO ROLE myrole; GRANT CREATE STREAMLIT ON SCHEMA mydb.myschema TO ROLE myrole; GRANT CREATE STAGE ON SCHEMA mydb.myschema TO ROLE myrole;
Privilégios necessários para visualizar um aplicativo Streamlit¶
Para visualizar um aplicativo Streamlit, você deve ter uma conta Snowflake e estar conectado nela. Além disso, sua conta deve ter os seguintes privilégios:
O privilégio global CREATE STREAMLIT deve ser concedido à conta do usuário.
O privilégio de nível de objeto USAGE deve ser concedido no banco de dados e no esquema que contém o aplicativo para a conta do usuário.
Um editor de aplicativo e o proprietário do esquema que contém o aplicativo Streamlit podem determinar quais funções têm permissão para usar o aplicativo. Os usuários podem interagir com o aplicativo e ver qualquer coisa exibida pelo aplicativo Streamlit. Os usuários têm a mesma visão do aplicativo que o proprietário.
Para obter mais informações, consulte Compartilhamento de um aplicativo Streamlit.
Versões suportadas das bibliotecas Streamlit¶
Streamlit in Snowflake suporta v1.22.0 das bibliotecas Streamlit. O suporte para versões posteriores das bibliotecas Streamlit será incluído à medida que forem lançadas.
Pacotes externos suportados¶
Por padrão, Streamlit in Snowflake inclui os pacotes python
, streamlit
e snowflake-snowpark-python
pré-instalados em seu ambiente. O ambiente também tem acesso às dependências exigidas por esses pacotes.
Você pode instalar pacotes adicionais em seu aplicativo Streamlit. Consulte o Canal Snowflake Anaconda para obter uma lista de pacotes suportados.
Consulte os tópicos a seguir para obter informações sobre como incluir um pacote compatível em seu aplicativo Streamlilt:
Considerações de simultaneidade para Streamlit in Snowflake¶
Streamlit in Snowflake fornece otimização de sessão e escalonamento automático no Snowflake para lidar com períodos de maior demanda por um aplicativo Streamlit. Streamlit in Snowflake usa uma combinação de instâncias de serviços de nuvem e instâncias de warehouse virtual. Consulte Conceitos-chave e arquitetura para obter mais informações.
Para manter a integridade do Snowflake, Streamlit in Snowflake impõe limites por instância, por conta e por usuário no número de sessões Streamlit simultâneas que uma instância de serviços de nuvem pode lidar. As sessões Streamlit têm balanceamento de carga entre essas instâncias até que todas as instâncias atinjam seu limite de sessões simultâneas. Quando um limite é atingido, a instância é dimensionada automaticamente para suportar sessões adicionais.
Nota
As solicitações de usuários do aplicativo Streamlit podem ser limitadas temporariamente. Os usuários poderão ver uma mensagem «Aguarde» quando o escalonamento automático for iniciado.
Considerações sobre faturamento para Streamlit in Snowflake¶
Streamlit in Snowflake requer um warehouse virtual para executar um aplicativo Streamlit e realizar consultas SQL. Para executar um aplicativo Streamlit, você deve selecionar um único warehouse virtual para executar o próprio aplicativo e suas consultas. Este warehouse permanece ativo enquanto a conexão de soquete da web do aplicativo estiver ativa. A conexão de soquete da Web, que mantém o warehouse virtual do aplicativo Streamlit ativo, expira aproximadamente 15 minutos após o último uso do aplicativo.
Para conservar os créditos, você pode suspender o warehouse virtual. Como alternativa, você pode fechar a página da Web que executa o aplicativo, o que permite que o warehouse virtual em execução seja suspenso automaticamente.
Diretrizes para selecionar um warehouse em Streamlit in Snowflake¶
Ao executar um aplicativo Streamlit em Streamlit in Snowflake, vários fatores podem afetar o desempenho, incluindo a complexidade do aplicativo Streamlit, a disponibilidade de warehouses, a latência e o custo. As seções a seguir fornecem diretrizes gerais para usar warehouses virtuais em Streamlit in Snowflake.
Uso de warehouses menores¶
Ao executar um aplicativo Streamlit em Streamlit in Snowflake, você deve selecionar o menor warehouse possível.
Durante a execução, um warehouse mantém um cache dos pacotes Python usados por um aplicativo Streamlit. O armazenamento em cache de pacotes Python melhora o desempenho para carregamentos posteriores de aplicativos usando a versão em cache de um pacote em vez de fazer download dos pacotes novamente. O cache é removido quando o warehouse é suspenso, o que pode resultar em um carregamento mais lento do aplicativo inicialmente após a retomada do warehouse. À medida que o warehouse retomado é executado e executa mais aplicativos, o cache do pacote é reconstruído e os aplicativos que conseguem aproveitar o cache terão melhor desempenho de carregamento de aplicativos.
Observe que o faturamento de crédito por segundo e a suspensão automática fornecem flexibilidade para começar com warehouses menores e, em seguida, ajustar o tamanho do warehouse para corresponder à carga de trabalho do aplicativo Streamlit. Você pode diminuir o tamanho de um warehouse a qualquer momento. Consulte Alteração do warehouse de um aplicativo Streamlit para obter mais informações.
Uso de warehouses dedicados¶
Ao usar Streamlit in Snowflake, Snowflake recomenda usar warehouses dedicados para executar aplicativos Streamlit. Isso permite isolar os custos de execução de aplicativos Streamlit. Um warehouse dedicado também pode melhorar o tempo de carregamento do aplicativo, uma vez que o warehouse não precisa gerenciar outras cargas de trabalho.
Consulte Considerações sobre warehouses para obter mais informações.