CREATE STREAMLIT

Cria um novo objeto Streamlit no Snowflake ou substitui um objeto Streamlit existente no mesmo esquema.

Consulte também:

SHOW STREAMLITS, DESCRIBE STREAMLIT, ALTER STREAMLIT, DROP STREAMLIT, UNDROP STREAMLIT

Sintaxe

CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
  [ FROM <source_location> ]
  [ MAIN_FILE = '<filename>' ]
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>' ]
  [ TITLE = '<app_title>' ]
  [ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Copy

A sintaxe a seguir é herdada:

Importante

ROOT_LOCATION é um parâmetro legado e pode ser descontinuado em um lançamento futuro. Para aplicativos Streamlit criados usando ROOT_LOCATION, edição de vários arquivos e integração do Git não são compatíveis.

CREATE [ OR REPLACE ] STREAMLIT [ IF NOT EXISTS ] <name>
  ROOT_LOCATION = '<stage_path_and_root_directory>'
  MAIN_FILE = '<path_to_main_file_in_root_directory>'
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>' ]
  [ TITLE = '<app_title>' ]
  [ IMPORTS = ( '<stage_path_and_file_name_to_read>' [ , ... ] ) ]
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <integration_name> [ , ... ] ) ]
Copy

Parâmetros obrigatórios

name

Especifica o identificador (ou seja, nome) do objeto Streamlit. Este novo identificador deve ser exclusivo para o esquema em que o objeto é criado.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a string do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais detalhes, consulte Requisitos para identificadores.

Parâmetros opcionais

FROM source_location

Copia os arquivos de origem do aplicativo do local especificado. O local deve estar dentro de um estágio nomeado interno. O caminho pode ser relativo ou totalmente qualificado. Por exemplo, se o estágio for nomeado @streamlit_db.streamlit_schema.streamlit_stage, os locais de origem válidos podem incluir:

  • Um caminho totalmente qualificado para a raiz do estágio: FROM '@streamlit_db.streamlit_schema.streamlit_stage'

  • Um caminho relativo para a raiz do estágio: FROM '@streamlit_stage'

  • Um caminho totalmente qualificado ou relativo para um subdiretório dentro do estágio: FROM '@streamlit_db.streamlit_schema.streamlit_stage/subdir'

Os arquivos são copiados apenas uma vez quando o CREATE o comando é executado; Alterações futuras no local de origem não atualizam automaticamente o aplicativo Streamlit.

Se esse parâmetro não for especificado, o Snowflake copiará os arquivos de origem para um aplicativo padrão com um streamlit_app.py Arquivo de ponto de entrada.

MAIN_FILE = 'filename'

O nome do arquivo do arquivo de ponto de entrada do Streamlit. Esse arquivo deve estar na raiz do diretório de origem especificado em FROM.

Se você estiver usando ROOT_LOCATION em vez de FROM, então MAIN_FILE pode ser um caminho relativo a ROOT_LOCATION.

DEFAULT: 'streamlit_app.py'

QUERY_WAREHOUSE = warehouse_name

Especifica o warehouse para executar o aplicativo e executar SQL consultas emitidas pelo aplicativo Streamlit.

DEFAULT: sem valor

Nota

Embora você possa criar um objeto Streamlit sem esse parâmetro, o aplicativo não será executado até que você especifique um warehouse de consultas.

COMMENT = 'string_literal'

Especifica um comentário para o objeto Streamlit.

DEFAULT: sem valor

TITLE = 'app_title'

Especifica um título para o objeto Streamlit exibir em Snowsight.

DEFAULT: O nome do objeto Streamlit passado para CREATE STREAMLIT.

IMPORTS = ( 'stage_path_and_file_name_to_read' [ , ... ] )

O local (estágio), caminho e nome do(s) arquivo(s) a ser(em) importado(s).

EXTERNAL_ACCESS_INTEGRATIONS = ( integration_name [ , ... ] )

Os nomes das integrações de acesso externo necessárias para que o código do aplicativo Streamlit acesse redes externas.

ROOT_LOCATION = 'stage_path_and_root_directory'

Especifica o caminho para a área de preparação nomeada que contém os arquivos Streamlit Python, arquivos de mídia e o arquivo environment.yml, por exemplo:

ROOT_LOCATION = '@streamlit_db.streamlit_schema.streamlit_stage'
Copy

Neste exemplo, os arquivos Streamlit estão localizados em um estágio nomeado denominado streamlit_stage em um banco de dados denominado streamlit_db e esquema denominado streamlit_schema.

Nota

  • Este parâmetro deve apontar para um único diretório dentro de um estágio interno nomeado.

  • Estágios externos não são suportados pelo Streamlit in Snowflake.

  • Se você estiver criando ou substituindo um objeto de aplicativo Streamlit dentro do Snowflake Native App Framework, use FROM 'relative_path_from_stage_root_directory' em vez de ROOT_LOCATION = 'stage_path_and_root_directory'.

Requisitos de controle de acesso

Se sua função não possuir os objetos na tabela a seguir, sua função deverá ter os privilégios listados sobre esses objetos:

Privilégio

Objeto

Notas

CREATE STREAMLIT

Esquema onde você cria o objeto Streamlit

READ

Estágio de onde você copia os arquivos de origem do aplicativo Streamlit

CREATE STAGE

Esquema onde você cria o objeto Streamlit

Este privilégio só é necessário para criar objetos Streamlit com o ROOT_LOCATION Parâmetro.

O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • Você deve inicializar o aplicativo após criá-lo.

    Importante

    Depois de usar a CREATE STREAMLIT, o aplicativo Streamlit não estará ativo até que você execute uma das seguintes ações:

    • Executar ALTER STREAMLIT … ADD LIVE VERSION FROM LAST no novo objeto Streamlit.

    • Acesse o aplicativo em Snowsight com a função proprietária do aplicativo.

  • Quando você clona um esquema ou banco de dados contendo um objeto Streamlit, o objeto Streamlit não é clonado.

  • Para especificar os pacotes usados pelo aplicativo Streamlit, use um arquivo environment.yml.

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

  • As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Os dois não podem ser usados na mesma instrução.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplos

Para criar um aplicativo Streamlit a partir de um estágio, 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_main.py'
  QUERY_WAREHOUSE = my_warehouse;
Copy

Para criar um aplicativo Streamlit a partir de um repositório Git, execute o comando CREATE STREAMLIT, conforme mostrado no exemplo a seguir:

CREATE STREAMLIT hello_streamlit
  FROM @streamlit_db.streamlit_schema.streamlit_repo/branches/streamlit_branch/
  MAIN_FILE = 'streamlit_main.py'
  QUERY_WAREHOUSE = my_warehouse;
Copy