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.

  1. No sistema de arquivos local, crie seu aplicativo Streamlit principal.

  2. 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
Copy

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;
      
      Copy

Crie um objeto STREAMLIT

Um objeto STREAMLIT é um objeto de banco de dados no Snowflake que encapsula os arquivos exigidos pelo seu aplicativo Streamlit.

  1. 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;
    
    Copy

    Este comando cria um objeto STREAMLIT chamado hello_streamlit com 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.

  2. Opcional: Para verificar se o objeto Streamlit foi criado, execute o comando SHOW STREAMLITS:

    SHOW STREAMLITS;
    
    Copy
  3. 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;
    
    Copy

Gerencie pacotes usando o arquivo environment.yml

Para instalar pacotes Python adicionais em seu aplicativo Streamlit:

  1. Crie um arquivo environment.yml em seu sistema de arquivo local.

  2. Para carregar o arquivo para o local de preparação especificado pelo parâmetro ROOT_LOCATION do objeto STREAMLIT, execute o comando PUT.

    Os pacotes listados em environment.yml sã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
Copy

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ência streamlit, conforme mostrado no exemplo a seguir:

    name: sf_env
    channels:
    - snowflake
    dependencies:
    - scikit-learn
    - streamlit=1.31.1
    
    Copy

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;
    
    Copy

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'
    
    Copy
  • 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'
    
    Copy

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;
    
    Copy

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;
    
    Copy

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;
    
    Copy