Skip to content

Conectando o Streamlit ao Snowflake: Liberando o Poder das Aplicações Web Orientadas por Dados

Se você está no mundo da análise de dados, desenvolvimento de software ou apenas é um entusiasta de tecnologia com interesse em construir aplicações web com Python, este guia abrangente foi feito para você. À medida que o campo de dados cresce, cresce também a necessidade de ferramentas eficientes para lidar e extrair insights valiosos. É aí que entram o Streamlit e o Snowflake.

O Streamlit, uma estrutura web de baixo código em rápido crescimento para Python, permite construir aplicações web interativas e orientadas por dados com um código mínimo. Por outro lado, o Snowflake, uma plataforma de armazenamento de dados baseada em nuvem, oferece uma solução robusta para armazenamento, computação e análise de dados. Juntos, eles formam uma dupla impressionante que traz conveniência e eficiência para o mundo dos dados.

Framework de Aplicação Nativa do Snowflake

Iniciando nossa aventura, façamos uma parada no centro do universo do Snowflake - o Framework de Aplicação Nativa. Imagine uma caixa de ferramentas repleta de recursos como procedimentos armazenados, tarefas, fluxos, UDFs, Snowpark e muitos outros. Isso é exatamente do que se trata esse framework!

Graças a esse conjunto de ferramentas, os provedores de aplicativos podem:

  • Utilizar as funcionalidades principais do Snowflake para criar suas aplicações
  • Distribuí-las e monetizá-las no Snowflake Marketplace (pense nele como uma App Store!)
  • Implantar as aplicações diretamente na conta do cliente no Snowflake.

Uma vez que uma aplicação é desenvolvida, as robustas capacidades de compartilhamento de dados do Snowflake podem distribuí-la pelo mundo através do Snowflake Marketplace. Os usuários podem então implantar essa aplicação diretamente do Marketplace para sua conta no Snowflake.

O Framework de Aplicação Nativa não é apenas um conjunto de recursos, mas uma porta de entrada para um mundo de possibilidades. Quando combinado com um framework de UX de baixo código como o Streamlit, essa mistura é mágica.

Streamlit no Snowflake

Entrando no mundo do Streamlit, essa estrutura gratuita e de código aberto é uma lufada de ar fresco para aqueles que desejam construir belas aplicações web para aprendizado de máquina e ciência de dados.

Criado com o objetivo de simplificar a vida de cientistas de dados e engenheiros de aprendizado de máquina, o Streamlit facilita a criação de aplicações fantásticas com apenas algumas linhas de código.

Deseja criar gratuitamente um aplicativo de análise e visualização de dados usando o Streamlit?

O PyGWalker (opens in a new tab) é uma biblioteca em Python que ajuda a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit, sem esforço. Confira este incrível vídeo produzido por Sven do Coding is Fun (opens in a new tab) que demonstra os passos detalhados para potencializar seu aplicativo Streamlit com essa poderosa biblioteca de visualização de dados em Python!


Um agradecimento especial ao Sven e sua grande contribuição (opens in a new tab) para a comunidade do PyGWalker!

Além disso, você também pode conferir a página do PyGWalker no GitHub (opens in a new tab) para mais exemplos do PyGWalker.

Quando integrado ao Snowflake (inteligentemente apelidado de SiS), ele permite escrever código Streamlit diretamente dentro do Snowflake, usando Python. Basta criar um objeto Streamlit (como outros objetos de esquema no Snowflake), nomear sua aplicação, atribuir um armazém e decidir a localização da aplicação. Como está aninhado dentro do Snowflake, os controles de acesso baseados em função são consistentemente aplicados.

E o melhor de tudo? Você pode implantar sua aplicação Streamlit, compartilhá-la com outros usando um link e até mesmo visualizá-la em seu dispositivo móvel. Muito legal, não é?

Prepare-se para a integração Streamlit + Snowflake

Crie um Banco de Dados Snowflake

Antes de começar a criar a aplicação web, é vital configurar um banco de dados Snowflake ao qual iremos conectar posteriormente nossa aplicação Streamlit. Vamos seguir os passos para criar um banco de dados Snowflake:

  1. Cadastre-se em uma conta Snowflake em https://signup.snowflake.com (opens in a new tab).
  2. Verifique seu e-mail "Bem-vindo(a) ao Snowflake!" para obter a URL da conta de acesso ao seu Snowflake. Use o botão LOG IN TO SNOWFLAKE ou copie a URL da conta no seu navegador.
  3. Insira suas credenciais do Snowflake.
  4. Após fazer login, você será direcionado para o painel de Worksheets.
  5. Para criar uma nova planilha SQL, siga as instruções fornecidas na interface do Snowflake.
  6. Insira a seguinte consulta SQL na caixa de consulta para criar um banco de dados PETS simples e preenchê-lo com alguns dados:
CREATE DATABASE PETS;
 
CREATE TABLE MYTABLE (
    NAME varchar(80),
    PET varchar(80)
);
 
INSERT INTO MYTABLE VALUES ('Mary', 'dog'), ('John', 'cat'), ('Robert', 'bird');
 
SELECT * FROM MYTABLE;
  1. Após executar a consulta, o banco de dados PETS será criado. Volte para a página principal.
  2. Na página principal, clique na guia Data para visualizar nosso banco de dados PETS recém-criado.

Configurar o Ambiente

Agora, vamos prosseguir para a configuração do nosso ambiente de codificação com o Anaconda.

conda create -n snowpark python=3.8
conda activate snowpark
pip install snowflake-snowpark-python streamlit

Lembre-se de que você pode desativar o ambiente conda após sua sessão de codificação com conda deactivate.

Vamos prosseguir para a configuração dos diretórios e arquivos para nossa aplicação Streamlit:

Primeiro, criamos um novo diretório para nosso projeto. Abra o terminal e digite:

mkdir streamlit-snowflake-app && cd streamlit-snowflake-app
touch main.py secrets.py .gitignore
  • O arquivo main.py é onde escreveremos nossa aplicação Streamlit.
  • O arquivo secrets.py armazenará nossas credenciais de acesso ao Snowflake.
  • O arquivo .gitignore garantirá que não cometamos acidentalmente essas credenciais sensíveis em um repositório público.

Vamos Construir uma Aplicação Streamlit com Snowflake

Agora vem a parte emocionante: construir a aplicação Streamlit. Aqui iremos consultar o banco de dados PETS que criamos anteriormente e exibir os resultados em nossa aplicação Streamlit.

  1. Importe as bibliotecas necessárias no arquivo main.py:
import streamlit as st
from snowflake.snowpark import Session
from secrets import SNOWFLAKE_ACCOUNT, SNOWFLAKE_USER, SNOWFLAKE_PASSWORD
  1. Estabeleça uma sessão Snowflake usando as credenciais armazenadas em secrets.py:
session = Session(url=SNOWFLAKE_ACCOUNT, user=SNOWFLAKE_USER, password=SNOWFLAKE_PASSWORD)
  1. Busque dados do Snowflake:
df = session.sql("SELECT * FROM PETS.MYTABLE").to_pandas()
  1. Exiba os dados no Streamlit:
st.write(df)
  1. Armazene segredos em secrets.toml
touch secrets.toml

No arquivo secrets.toml, adicione suas credenciais do Snowflake:

[secrets]
SNOWFLAKE_ACCOUNT = "sua_conta"
SNOWFLAKE_USER = "seu_usuario"
SNOWFLAKE_PASSWORD = "sua_senha"

Atualize o arquivo main.py para usar o gerenciamento de segredos do Streamlit:

session = Session(url=st.secrets["SNOWFLAKE_ACCOUNT"], user=st.secrets["SNOWFLAKE_USER"], password=st.secrets["SNOWFLAKE_PASSWORD"])

Não se esqueça de atualizar o arquivo .gitignore também.

Pronto! Você acabou de criar seu primeiro aplicativo Streamlit que se conecta a um banco de dados Snowflake. Para executar o aplicativo, use streamlit run main.py no seu terminal.

Como implantar um aplicativo Streamlit

Com o aplicativo pronto e os segredos gerenciados de forma segura, é hora de compartilhar seu trabalho com o mundo. O Streamlit fornece uma plataforma chamada Streamlit Share para implantar aplicativos:

  1. Faça commit do seu projeto em um repositório do GitHub público (exceto o arquivo secrets.toml).
  2. Visite share.streamlit.io (opens in a new tab) e clique em Implantar um aplicativo.
  3. Selecione o seu repositório e branch do GitHub, em seguida, especifique main.py como o arquivo de aplicativo.
  4. Na seção Segredos, clique em Adicionar um segredo e insira os pares chave-valor do secrets.toml.
  5. Clique em Implantar. O Streamlit Share cuidará do resto!

Conclusão

A conexão do Streamlit ao Snowflake abre um mundo de possibilidades para criar aplicativos web interativos e eficientes com Python. Este guia mostrou a você um processo passo a passo para integrar estas duas plataformas poderosas, desde a configuração de um banco de dados Snowflake e aplicativo Streamlit, até o gerenciamento de segredos e implantação do aplicativo. Com um pouco de criatividade, você pode adaptar este processo para uma variedade de aplicativos e fluxos de trabalho.

Agora que você está equipado com esse conhecimento, vá em frente e crie aplicativos orientados por dados que façam diferença.

Quer visualizar facilmente os dados do Snowflake? O RATH (opens in a new tab) oferece a solução mais fácil para visualização de dados com inteligência artificial e um pacote completo para análise de dados automatizada!

Assista ao vídeo a seguir sobre como explorar facilmente insights de dados com o RATH:


Quer conectar seu banco de dados Snowflake ao RATH agora? Confira a Documentação do RATH para um guia passo a passo de integração com o Snowflake: Guia passo a passo de integração com o Snowflake.

Além do Snowflake, o RATH suporta uma ampla variedade de fontes de dados. Aqui estão algumas das principais soluções de banco de dados que você pode conectar ao RATH: Bancos de dados suportados

Interessado? Experimente o RATH agora mesmo no site do RATH (opens in a new tab).

Visualize dados do Snowflake com o RATH (opens in a new tab)

Perguntas Frequentes

O que é Snowflake no Streamlit?

Snowflake no Streamlit (SiS) se refere à integração do Streamlit na plataforma Snowflake. SiS permite que os usuários escrevam código Streamlit diretamente no Snowflake, aproveitando as capacidades de armazenamento, processamento e segurança do Snowflake.

O Streamlit é de propriedade da Snowflake?

Não, o Streamlit é um projeto independente de código aberto e não é de propriedade da Snowflake. O Streamlit é amplamente utilizado na comunidade de ciência de dados para construir aplicativos web interativos, enquanto o Snowflake é uma plataforma de dados baseada em nuvem.

O que é o Snowpark para Python e Streamlit?

O Snowpark é um recurso do Snowflake que permite aos desenvolvedores escrever código em diferentes linguagens de programação. O Snowpark para Python permite que os usuários escrevam código Python e o integrem às capacidades de processamento de dados do Snowflake. O Streamlit no Snowflake aproveita o Snowpark para Python para permitir que os usuários escrevam código Streamlit diretamente no Snowflake, criando aplicativos interativos de dados.