Criação e implementação de aplicativos Streamlit usando SQL¶
Este tópico descreve como implantar um aplicativo Streamlit no Snowflake usando comandos SQL. Começando por um ambiente de desenvolvimento local, você pode copiar os arquivos do app Streamlit para uma área de preparação nomeada no Snowflake e criar um objeto Streamlit com base nesses arquivos.
Criação de um aplicativo Streamlit usando SQL¶
Antes de criar um aplicativo Streamlit usando SQL, certifique-se de que você atende aos pré-requisitos necessários.
Para criar um aplicativo Streamlit no Snowflake usando comandos SQL, execute cada uma das seguintes tarefas:
Opcional: Criação de arquivos Streamlit em seu sistema de arquivo local¶
Esta seção descreve como criar um conjunto local de arquivos de origem do app e prepará-los no Snowflake. Na próxima seção, se você não tiver arquivos de origem preparados quando criar o objeto STREAMLIT, um conjunto padrão de arquivos de origem será copiado para o seu objeto STREAMLIT.
No sistema de arquivos local, crie seu aplicativo Streamlit principal.
Opcional: Para configurar o ambiente de implantação e especificar as dependências, crie um arquivo
environment.yml.Se você não incluir esse arquivo, o app será executado nas versões mais recentes compatíveis do Python e do Streamlit no Streamlit in Snowflake. Para obter informações sobre dependências de apps, consulte Gerencie pacotes usando o arquivo environment.yml.
Depois que você criar o app Streamlit, a estrutura de diretórios deverá ser semelhante a esta:
project_directory/
├── .streamlit/
│ └── config.toml
├── environment.yml
└── streamlit_app.py
Nota
O Streamlit in Snowflake é compatível com apps Streamlit de várias páginas. Este exemplo mostra apenas um app de página única, mas você pode adicionar um diretório pages/ ou usar st.navigation para criar um app de várias páginas. Para saber mais sobre apps de várias páginas, consulte Overview of multipage apps na documentação de código aberto do Streamlit.
Carregue seus arquivos Streamlit para um estágio nomeado¶
Para criar um aplicativo Streamlit em Streamlit in Snowflake, você deve carregar os arquivos do seu aplicativo para um estágio nomeado.
Para fazer upload de arquivos de aplicativo, siga um destes procedimentos:
Carregue os arquivos do aplicativo usando Snowsight, conforme descrito em Preparação de arquivos usando o Snowsight
Carregue os arquivos do aplicativo usando SnowSQL, conforme mostrado no exemplo a seguir:
PUT file:///<path_to_your_project_directory>/streamlit/streamlit_app.py @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_project_directory>/streamlit/environment.yml @streamlit_db.streamlit_schema.streamlit_stage overwrite=true auto_compress=false; PUT file:///<path_to_your_project_directory>/streamlit/.streamlit/config.toml @streamlit_db.streamlit_schema.streamlit_stage/.streamlit/ overwrite=true auto_compress=false;
Crie um objeto STREAMLIT¶
Um objeto STREAMLIT é um objeto de banco de dados no Snowflake que encapsula os arquivos exigidos pelo seu aplicativo Streamlit.
Para criar um objeto STREAMLIT, execute o comando CREATE STREAMLIT, conforme mostrado no exemplo a seguir:
CREATE STREAMLIT hello_streamlit FROM '@streamlit_db.streamlit_schema.streamlit_stage' MAIN_FILE = 'streamlit_app.py' QUERY_WAREHOUSE = my_warehouse;
Este comando cria um objeto STREAMLIT chamado
hello_streamlitcom base no caminho e no arquivo especificados em FROM e MAIN_FILE.Nota
Embora a cláusula QUERY_WAREHOUSE seja opcional, você deve especificar um warehouse de consulta para poder executar o aplicativo Streamlit no Snowflake.
Opcional: Para verificar se o objeto Streamlit foi criado, execute o comando SHOW STREAMLITS:
SHOW STREAMLITS;
Para concluir a inicialização do app, a função de proprietário deve visualizar o app no Snowsight ou executar o seguinte comando:
ALTER STREAMLIT hello_streamlit ADD LIVE VERSION FROM LAST;
Gerencie pacotes usando o arquivo environment.yml¶
Para instalar pacotes Python adicionais em seu aplicativo Streamlit:
Crie um arquivo
environment.ymlem seu sistema de arquivo local.Para carregar o arquivo para o local de preparação especificado pelo parâmetro
ROOT_LOCATIONdo objeto STREAMLIT, execute o comando PUT.Os pacotes listados em
environment.ymlsão instalados no Canal Snowflake Anaconda.
O exemplo environment.yml a seguir mostra como instalar scikit-learn no ambiente Streamlit:
name: sf_env
channels:
- snowflake
dependencies:
- scikit-learn
As propriedades name e channels são exigidas. Além disso, a chave - snowflake é obrigatória na propriedade channels.
Nota
Você só pode instalar pacotes listados no Canal Snowflake Anaconda. Streamlit no Snowflake não oferece suporte a canais Anaconda externos.
Fixação da versão do Streamlit no arquivo environment.yml¶
Para fixar a versão do Streamlit no arquivo
environment.yml, inclua uma dependênciastreamlit, conforme mostrado no exemplo a seguir:name: sf_env channels: - snowflake dependencies: - scikit-learn - streamlit=1.31.1
Visualização de um aplicativo Streamlit¶
Para visualizar informações sobre o objeto STREAMLIT, execute o comando DESCRIBE STREAMLIT conforme mostrado no exemplo a seguir:
DESC STREAMLIT hello_streamlit;
Para visualizar seu aplicativo Streamlit em Snowsight, selecione Visualização de um aplicativo Streamlit.
Gerenciamento de objetos STREAMLIT¶
Depois de criar um objeto STREAMLIT, use o comando ALTER STREAMLIT para modificar diferentes propriedades conforme descrito nas seções a seguir.
Renomeação de um objeto STREAMLIT¶
Para renomear um objeto STREAMLIT, use a cláusula RENAME TO do comando ALTER STREAMLIT, conforme mostrado no exemplo a seguir:
ALTER STREAMLIT hello_streamlit RENAME TO hello_snowflake;
Alteração do estágio ou arquivo principal em um objeto STREAMLIT¶
Para alterar o caminho para o estágio de um objeto STREAMLIT, use o comando ALTER STREAMLIT para definir a propriedade ROOT_LOCATION do objeto, conforme mostrado no exemplo a seguir:
ALTER STREAMLIT hello_streamlit SET ROOT_LOCATION = '@snowflake_db.snowflake_schema.snowflake_stage'
Para alterar o arquivo Streamlit principal em um objeto STREAMLIT, use o comando ALTER STREAMLIT para definir a propriedade MAIN_FILE do objeto, conforme mostrado no exemplo a seguir:
ALTER STREAMLIT hello_streamlit SET MAIN_FILE = 'snowflake_main.py'
Alteração do warehouse de consultas atribuído a um objeto STREAMLIT¶
Para adicionar um warehouse de consultas ou alterar o warehouse de consultas atual de um objeto STREAMLIT, use o comando ALTER STREAMLIT para definir a propriedade QUERY_WAREHOUSE do objeto, conforme mostrado no exemplo a seguir:
ALTER STREAMLIT hello_streamlit SET QUERY_WAREHOUSE = my_new_warehouse;
Listagem de objetos STREAMLIT disponíveis¶
Para listar os aplicativos Streamlit disponíveis para sua função atual, execute o comando SHOW STREAMLITS, conforme mostrado no exemplo a seguir:
SHOW STREAMLITS;
Exclusão de um objeto STREAMLIT¶
Para excluir um objeto STREAMLIT, execute o comando DROP STREAMLIT, conforme mostrado no exemplo a seguir:
DROP STREAMLIT hello_streamlit;