Entrar ou criar conta

Laboratório: Dashboard de Vendas do Varejo com Apache Superset e PostgreSQL (modelo bi_varejo)

Você terá um ambiente local rodando Apache Superset em Docker, conectado a um banco PostgreSQL com dados simulados no esquema bi_varejo. Em até 2 horas, será possível criar dashboards de vendas e validar consultas típicas do varejo.

Dashboards para varejo com Apache Superset + CISSPoder + CISSLive
Ligado ao treinamento Dashboards para varejo com Apache Superset + CISSPoder + CISSLive

Roteiro para estudo em ambiente de laboratório ou de teste. Execute apenas em equipamentos, redes e contas que você tenha autorização para usar, com backup e homologação próprios. Comandos podem causar indisponibilidade ou perda de dados. Software e marcas citados pertencem aos seus titulares. Termos de Uso.

Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
5
Versões da documentação consultada
Docker Engine a versão estável atual · PostgreSQL 15 (documentação consultada) · Apache Superset 6.0 (documentação consultada)
Objetivo

Este laboratório ensina a montar, do zero, um ambiente de BI para varejo usando apenas software livre: PostgreSQL para armazenar uma réplica simulada dos dados do ERP e Apache Superset para visualização. O foco é entender como extrair, carregar e explorar dados de vendas, produtos e clientes, sem acessar o banco de produção do ERP. O modelo bi_varejo é didático e não representa o esquema real do CISSPoder ou CISSLive.

Topologia

Uma máquina local (192.168.56.10) roda Docker com dois containers: um PostgreSQL (porta 5432) com o esquema bi_varejo, e um Apache Superset (porta 8088) conectado ao PostgreSQL. O usuário acessa o Superset via navegador. Não há conexão direta com o ERP real.


+---------------------+
|   Usuário/Browser   |
|   (localhost)       |
+---------+-----------+
          |
          | HTTP 8088
+---------v-----------+
| Apache Superset     |
| (Docker, 8088)      |
+---------+-----------+
          |
          | TCP 5432
+---------v-----------+
| PostgreSQL          |
| (Docker, 5432)      |
+---------------------+

Equipamentos e software

ItemRequisito, licença ou versão
PC ou notebook2 vCPU, 4 GB RAM, 15 GB livres, 1 porta Ethernet/Wi-Fi
Sistema operacionalLinux, Windows 10+, ou macOS com suporte a Docker
Docker EngineApache 2.0 · a versão estável atual
PostgreSQLPostgreSQL License · 15 (documentação consultada)
Apache SupersetApache 2.0 · 6.0 (documentação consultada)

Roteiro

  1. Preparar ambiente Docker

    Você precisa de Docker e Docker Compose instalados para isolar os serviços. Isso evita conflitos e facilita a limpeza.

    Consulte https://docs.docker.com/get-docker/ para instalar Docker.
    Consulte https://docs.docker.com/compose/install/ para instalar Docker Compose.

    O que você deve ver: Comando 'docker --version' e 'docker compose version' retornam versões instaladas.

  2. Criar diretório de trabalho

    Organize os arquivos do laboratório em uma pasta dedicada.

    mkdir superset_lab && cd superset_lab

    O que você deve ver: Diretório superset_lab criado e acessado.

  3. Criar docker-compose.yaml

    Defina os serviços PostgreSQL e Superset no Docker Compose.

    cat > docker-compose.yaml <<EOF
    version: '3.7'
    services:
      postgres:
        image: postgres:15
        environment:
          POSTGRES_USER: superset
          POSTGRES_PASSWORD: superset
          POSTGRES_DB: bi_varejo
        ports:
          - "5432:5432"
        volumes:
          - ./pgdata:/var/lib/postgresql/data
      superset:
        image: apache/superset:6.0.0
        environment:
          SUPERSET_SECRET_KEY: 'ulc_lab_secret'
          SUPERSET_DATABASE_URI: postgresql+psycopg2://superset:superset@postgres:5432/bi_varejo
        ports:
          - "8088:8088"
        depends_on:
          - postgres
        volumes:
          - ./docker/requirements-local.txt:/app/requirements-local.txt
    EOF

    O que você deve ver: Arquivo docker-compose.yaml criado com dois serviços definidos.

  4. Criar requirements-local.txt

    Garanta que o Superset tenha o driver psycopg2 para PostgreSQL.

    mkdir -p docker && echo 'psycopg2-binary' > docker/requirements-local.txt

    O que você deve ver: Arquivo requirements-local.txt criado com psycopg2-binary listado.

  5. Subir os containers

    Inicie os serviços PostgreSQL e Superset juntos.

    docker compose up -d

    O que você deve ver: Containers postgres e superset em execução. 'docker ps' mostra ambos UP.

  6. Inicializar Superset

    Configure o banco de dados interno e crie o usuário admin do Superset.

    docker compose exec superset superset db upgrade
    docker compose exec superset superset fab create-admin --username admin --firstname Admin --lastname ULC --email admin@ulc.local --password admin123
    docker compose exec superset superset init

    O que você deve ver: Usuário admin criado e Superset inicializado.

  7. Popular o PostgreSQL com modelo bi_varejo

    Crie o esquema de estudo e insira dados simulados para vendas, produtos e clientes.

    docker compose exec postgres psql -U superset -d bi_varejo -c "CREATE SCHEMA bi_varejo;"
    # Crie as tabelas conforme modelo didático (exemplo para fato_venda)
    docker compose exec postgres psql -U superset -d bi_varejo -c "CREATE TABLE bi_varejo.fato_venda (id SERIAL PRIMARY KEY, data DATE, id_loja INT, id_cliente INT, valor_total NUMERIC);"
    # Repita para as demais tabelas do modelo didático (fato_venda_item, dim_produto, dim_cliente, dim_loja, dim_campanha). Consulte a documentação do PostgreSQL para sintaxe completa.
    # Insira linhas de exemplo em cada tabela.

    O que você deve ver: Tabelas criadas no esquema bi_varejo e dados de teste inseridos.

  8. Acessar o Superset via navegador

    Abra o Superset em http://localhost:8088 e faça login como admin.

    O que você deve ver: Tela de login do Superset acessível. Dashboard inicial visível após login.

  9. Adicionar conexão de banco de dados no Superset

    No Superset, adicione a conexão ao PostgreSQL usando a URI postgresql://superset:superset@postgres:5432/bi_varejo.

    O que você deve ver: Conexão testada e salva. Tabelas do esquema bi_varejo ficam disponíveis.

  10. Importar tabelas para o Superset

    No menu Data > Datasets, importe as tabelas do esquema bi_varejo.

    O que você deve ver: Datasets bi_varejo.fato_venda, bi_varejo.dim_produto, etc., disponíveis para consulta.

  11. Criar gráfico de vendas por loja

    Monte um gráfico simples (barras ou pizza) mostrando o total de vendas por loja.

    O que você deve ver: Visualização criada e exibida corretamente.

  12. Salvar e compartilhar dashboard

    Agrupe visualizações em um dashboard e salve.

    O que você deve ver: Dashboard salvo e acessível pelo menu Dashboards.

Como saber que funcionou

TesteComandoCritério
Verificar containers em execuçãodocker psContainers postgres e superset com status UP.
Acessar Superset via navegadorhttp://localhost:8088Tela de login do Superset aparece.
Testar conexão ao PostgreSQL pelo SupersetMensagem de conexão bem-sucedida ao salvar a URI.
Visualizar dados em tabelaPreview dos dados das tabelas bi_varejo visível no Superset.
Gerar gráfico de vendasGráfico exibe dados coerentes com os inseridos.

Troubleshooting

SintomaCausa provávelCorreção
Superset não iniciaDependência do banco não pronta ou erro de configuraçãoVerifique logs com 'docker compose logs superset' e confirme variáveis de ambiente.
Conexão ao PostgreSQL falhaURI de conexão incorreta ou serviço não iniciadoRevise a URI e confirme se o container postgres está UP.
Tabelas não aparecem no SupersetPermissões do usuário ou esquema não especificadoConfirme que o usuário superset tem acesso ao esquema bi_varejo.
Erro ao criar dashboardDados insuficientes ou erro de sintaxe SQLInsira mais dados de teste e revise as queries.
Porta 8088 ocupadaOutro serviço usando a portaAltere a porta no docker-compose.yaml ou pare o serviço conflitante.

Segurança e hardening

  • Nunca use senhas padrão em ambientes de produção
  • Limite o acesso do usuário de banco a somente leitura para dados importados
  • Não exponha as portas 5432 ou 8088 para a internet sem firewall
  • Remova dados simulados e containers após o laboratório

Checklist final

Referências

  1. Documentação oficial do Apache Superset · Apache Software Foundation (Superset) (superset.apache.org)
  2. Documentação oficial do PostgreSQL · PostgreSQL Global Development Group (postgresql.org)
  3. Documentação do Docker · Docker, Inc. (docs.docker.com)
Verificação editorial
Publicado
11/09/2026
Última revisão
13/09/2026
Versão do conteúdo
1.0
Referências
3 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.