Introdução às Streamlit in Snowflake¶
Este tópico descreve como criar e executar seu primeiro app Streamlit in Snowflake.
Pré-requisitos¶
Antes de criar um app Streamlit, certifique-se de que seu administrador tenha concluído a configuração de segurança essencial para apps Streamlit.
Sua função deve ter os seguintes privilégios:
Privilégio |
Objeto |
Notas |
|---|---|---|
USAGE |
Banco de dados em que você cria o aplicativo Streamlit |
|
CREATE STREAMLIT,
USAGE
|
Esquema em que você cria o aplicativo Streamlit |
|
USAGE |
Warehouse que executa consultas no aplicativo Streamlit |
Para aplicativos de tempo de execução do warehouse, o warehouse também executa o código Python do aplicativo. |
USAGE |
Pool de computação que executa o aplicativo Streamlit |
Este privilégio só é necessário se seu app usar um tempo de execução de contêiner (versão preliminar). |
Para obter mais informações, consulte Privilégios necessários para criar e usar um aplicativo Streamlit.
Implantar seu primeiro app Streamlit in Snowflake¶
A maneira mais rápida de começar é criar um app Streamlit usando os arquivos de app padrão. O Snowflake fornece automaticamente o código inicial quando você cria um app sem especificar arquivos de origem.
Faça login no Snowsight.
No menu de navegação, selecione Projects » Streamlit.
Selecione + Streamlit App.
Digite um nome para seu aplicativo.
Selecione um banco de dados e um esquema para criar seu app.
Configure seu aplicativo.
Para criar um app de tempo de execução de contêiner (versão preliminar), selecione as seguintes opções:
Selecione Run on container.
Selecione um pool de computação para executar seu app. Preferencialmente, este deve ser um pool de computação dedicado à execução de aplicativos Streamlit.
Selecionar um warehouse de consulta para executar as consultas do seu aplicativo.
Para criar um aplicativo de tempo de execução do warehouse, selecione as seguintes opções:
Selecione Run on warehouse.
Selecione um warehouse para executar seu app. Preferencialmente, este deve ser um warehouse dedicado à execução de aplicativos Streamlit.
Selecione Create.
O Snowflake cria um novo app Streamlit com código de exemplo. O Snowsight redireciona você para o editor de apps. Seu app estará pronto dentro de alguns segundos ou alguns minutos, dependendo do tipo de tempo de execução. Então, é possível visualizá-lo e editá-lo imediatamente.
Ao usar seu banco de dados e esquema preferido em uma sessão SQL, execute os seguintes comandos SQL:
Crie um objeto Streamlit padrão.
Para criar um app de tempo de execução de contêiner (versão preliminar):
CREATE STREAMLIT my_first_app RUNTIME_NAME = 'SYSTEM$ST_CONTAINER_RUNTIME_PY3_11' COMPUTE_POOL = my_compute_pool QUERY_WAREHOUSE = my_warehouse;
Para criar um aplicativo de tempo de execução do warehouse:
CREATE STREAMLIT my_first_app QUERY_WAREHOUSE = my_warehouse;
Esses comandos criam um app Streamlit chamado
my_first_appcom código inicializador padrão.Torne o app ativo:
ALTER STREAMLIT my_first_app ADD LIVE VERSION FROM LAST;
Como os objetos Streamlit usam áreas de preparação com versão, é necessário enviar o código do seu aplicativo para o local da versão ativa antes que um usuário com apenas o privilégio USAGE no objeto Streamlit pode visualizá-lo.
Para visualizar seu aplicativo, faça login na Snowsight.
No menu de navegação, clique em Projects » Streamlit e selecione 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.
Inicialize um novo projeto Streamlit:
snow init my_first_app --template example_streamlit
Navegue até o diretório do projeto:
cd my_first_app
Configure seu app editando o arquivo
snowflake.yml.Para criar um app de tempo de execução de contêiner (versão preliminar), adicione
compute_pooleruntime_name:definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse compute_pool: my_compute_pool runtime_name: SYSTEM$ST_CONTAINER_RUNTIME_PY3_11 main_file: streamlit_app.py artifacts: - streamlit_app.py
Para criar um aplicativo de tempo de execução do warehouse, use a configuração padrão:
definition_version: 2 entities: my_streamlit: type: streamlit identifier: my_first_app query_warehouse: my_warehouse main_file: streamlit_app.py artifacts: - streamlit_app.py
Salve seu arquivo
snowflake.yml.Implante o app no Snowflake e abra-o no seu navegador:
snow streamlit deploy --open
Editar seu aplicativo¶
Para obter mais informações sobre como editar seu aplicativo, consulte Edição de um aplicativo Streamlit implantado.
Depois de criar seu aplicativo, é possível editar o código para personalizá-lo:
Faça login no Snowsight.
No menu de navegação, clique em Projects » Streamlit e selecione seu app.
Para abrir o editor, selecione Edit.
No painel do editor, modifique o código no arquivo
streamlit_app.py.Selecione Run para ver suas alterações.
Se você tiver um ou mais arquivos de app editados em uma área de preparação, você pode usar COPY FILES para copiá-los para o local de origem do seu app com os seguintes comandos:
Identifique o local de origem do seu aplicativo:
DESCRIBE STREAMLIT my_first_app;
O valor de
live_version_location_urié o local de origem do seu aplicativo. Copie isso em um bloco de notas para usar na próxima etapa. Isso é um URL snow (snow://).Copie arquivos de uma área de preparação interna para o local de origem do seu aplicativo:
COPY FILES INTO '<live_version_location_uri>' FROM @my_stage FILES = ('streamlit_app.py');
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.
No diretório local, edite e salve o arquivo
streamlit_app.pyno diretório do projeto local.Implemente suas alterações no Snowflake:
snow streamlit deploy --replace
Isso substituirá todo o seu app pela nova versão.
Qual é o próximo passo?¶
Agora que você criou seu primeiro aplicativo, explore estes tópicos para saber mais:
Gerenciamento de dependências para o app Streamlit: Adicione pacotes Python ao seu aplicativo.
Acesso à rede externa no Streamlit in Snowflake: Conecte seu app aos serviços externos.