Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Metabase com PostgreSQL para BI de Varejo Simulado

Você vai instalar Metabase e PostgreSQL em máquinas separadas, criar um modelo de dados bi_varejo simulado e conectar o Metabase para análise. Em cerca de 2 horas, terá dashboards operando sobre dados extraídos.

Metabase para varejo com CISS: CISSPoder e CISSLive
Ligado ao treinamento Metabase para varejo com CISS: CISSPoder e 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
11
Validações
4
Versões da documentação consultada
Metabase v0.48.7 · PostgreSQL 15.x estável
Objetivo

Este laboratório ensina a montar uma bancada de BI baseada em código aberto, simulando a extração de dados do ERP CISSPoder ou CISSLive para um PostgreSQL, e conectando o Metabase para análise visual. O objetivo é demonstrar, em ambiente controlado, como estruturar a integração e análise sem acessar o banco de produção, usando um modelo didático (bi_varejo) para consultas de PDV, curva ABC e campanhas.

Topologia

Duas máquinas (ou VMs) em rede privada: uma roda PostgreSQL com o esquema bi_varejo, outra roda Metabase acessando o PostgreSQL por IP privado. O usuário do PostgreSQL tem permissão somente leitura no esquema bi_varejo. O acesso ao Metabase se dá via navegador na rede local.

   [Navegador]
        |
   [Metabase VM]
      192.168.56.10:3000
        |
   [PostgreSQL VM]
      192.168.56.20:5432
        |
   [bi_varejo schema]
        |
   [dados simulados]

Equipamentos e software

ItemRequisito, licença ou versão
VM Metabase2 vCPU, 2 GB RAM, 1 porta aberta (3000)
VM PostgreSQL2 vCPU, 2 GB RAM, 1 porta aberta (5432)
MetabaseAGPL v3 · v0.48.7
PostgreSQLPostgreSQL License · 15.x estável

Roteiro

  1. Preparar as VMs e rede privada

    Crie duas VMs Linux (Ubuntu Server 22.04 ou similar) em uma rede privada (exemplo: 192.168.56.0/24). Uma será para PostgreSQL, outra para Metabase.

    O que você deve ver: Ambas as VMs se pingam mutuamente nos IPs privados.

  2. Instalar PostgreSQL

    No servidor PostgreSQL, instale o PostgreSQL pelo gerenciador de pacotes.

    sudo apt update && sudo apt install postgresql

    O que você deve ver: Serviço postgresql ativo. Porta 5432 ouvindo.

  3. Criar usuário e banco de dados para BI

    Crie um banco chamado bi_varejo e um usuário bi_readonly com permissão somente leitura.

    sudo -u postgres psql -c "CREATE DATABASE bi_varejo;"
    sudo -u postgres psql -d bi_varejo -c "CREATE USER bi_readonly WITH PASSWORD 'senha_forte';"
    sudo -u postgres psql -d bi_varejo -c "GRANT CONNECT ON DATABASE bi_varejo TO bi_readonly;"

    O que você deve ver: Banco bi_varejo criado. Usuário bi_readonly criado.

  4. Criar esquema e tabelas simuladas

    Implemente o esquema didático bi_varejo com tabelas fato_venda, fato_venda_item, dim_produto, dim_cliente, dim_loja, dim_campanha.

    sudo -u postgres psql -d bi_varejo
    CREATE SCHEMA bi_varejo;
    SET search_path TO bi_varejo;
    CREATE TABLE dim_produto (id_produto serial PRIMARY KEY, nome text);
    CREATE TABLE dim_cliente (id_cliente serial PRIMARY KEY, nome text);
    CREATE TABLE dim_loja (id_loja serial PRIMARY KEY, nome text);
    CREATE TABLE dim_campanha (id_campanha serial PRIMARY KEY, descricao text);
    CREATE TABLE fato_venda (id_venda serial PRIMARY KEY, data_venda date, id_loja int, id_cliente int);
    CREATE TABLE fato_venda_item (id_venda int, id_produto int, quantidade int, valor_unitario numeric, id_campanha int);

    O que você deve ver: Tabelas criadas no esquema bi_varejo.

  5. Popular tabelas com dados de exemplo

    Insira alguns registros em cada tabela para simular vendas, produtos, clientes, lojas e campanhas.

    sudo -u postgres psql -d bi_varejo -c "INSERT INTO bi_varejo.dim_produto (nome) VALUES ('Arroz'),('Feijão'),('Açúcar');"
    sudo -u postgres psql -d bi_varejo -c "INSERT INTO bi_varejo.dim_cliente (nome) VALUES ('Maria'),('João');"
    sudo -u postgres psql -d bi_varejo -c "INSERT INTO bi_varejo.dim_loja (nome) VALUES ('Loja Centro'),('Loja Bairro');"
    sudo -u postgres psql -d bi_varejo -c "INSERT INTO bi_varejo.dim_campanha (descricao) VALUES ('Campanha Verão'),('Campanha Natal');"
    sudo -u postgres pql -d bi_varejo -c "INSERT INTO bi_varejo.fato_venda (data_venda, id_loja, id_cliente) VALUES ('2024-05-01',1,1),('2024-05-02',2,2);"
    sudo -u postgres psql -d bi_varejo -c "INSERT INTO bi_varejo.fato_venda_item (id_venda, id_produto, quantidade, valor_unitario, id_campanha) VALUES (1,1,2,5.00,1),(1,2,1,7.00,1),(2,3,3,4.00,2);"

    O que você deve ver: Dados de exemplo inseridos. SELECT retorna linhas.

  6. Conceder permissão somente leitura ao usuário

    Garanta que bi_readonly só possa ler dados do esquema bi_varejo.

    sudo -u postgres psql -d bi_varejo -c "GRANT USAGE ON SCHEMA bi_varejo TO bi_readonly;"
    sudo -u postgres psql -d bi_varejo -c "GRANT SELECT ON ALL TABLES IN SCHEMA bi_varejo TO bi_readonly;"

    O que você deve ver: Usuário bi_readonly acessa dados, mas não pode alterar.

  7. Liberar acesso remoto ao PostgreSQL

    Edite o postgresql.conf para escutar em todas as interfaces e o pg_hba.conf para permitir acesso do IP do Metabase.

    sudo nano /etc/postgresql/15/main/postgresql.conf
    # Altere:
    listen_addresses = '*'
    
    sudo nano /etc/postgresql/15/main/pg_hba.conf
    # Adicione:
    host    bi_varejo    bi_readonly    192.168.56.10/32    md5
    
    sudo systemctl restart postgresql

    O que você deve ver: PostgreSQL ouvindo em 0.0.0.0. Conexão remota possível.

  8. Instalar Metabase via Docker

    No servidor Metabase, instale Docker e rode o container oficial do Metabase.

    sudo apt update && sudo apt install docker.io
    sudo docker run -d -p 3000:3000 --name metabase metabase/metabase:latest

    O que você deve ver: Container Metabase rodando. Porta 3000 aberta.

  9. Acessar a interface web do Metabase

    No navegador, acesse http://192.168.56.10:3000 para iniciar o setup.

    O que você deve ver: Tela de boas-vindas do Metabase.

  10. Configurar conexão com PostgreSQL no Metabase

    No assistente do Metabase, selecione PostgreSQL, informe IP (192.168.56.20), banco (bi_varejo), usuário (bi_readonly), senha, porta (5432).

    O que você deve ver: Metabase conecta e lista as tabelas do esquema bi_varejo.

  11. Criar dashboard simples de vendas

    No Metabase, crie uma consulta simples na tabela fato_venda_item, agregando quantidade por produto.

    O que você deve ver: Dashboard exibe gráfico de vendas por produto.

Como saber que funcionou

TesteComandoCritério
Conexão Metabase-PostgreSQLMetabase lista tabelas do bi_varejo.
Permissão somente leituraTente editar dados com bi_readonlyAcesso negado para INSERT/UPDATE/DELETE.
Consulta de vendasSELECT * FROM bi_varejo.fato_venda_item;Retorno de linhas simuladas.
Acesso web ao Metabasecurl http://192.168.56.10:3000Retorno HTTP 200 com conteúdo HTML do Metabase.

Troubleshooting

SintomaCausa provávelCorreção
Metabase não conecta ao PostgreSQLFirewall bloqueando porta 5432 ou configuração listen_addresses incorretaVerifique regras de firewall e postgresql.conf.
Usuário bi_readonly não vê tabelasPermissões insuficientes no esquemaExecute GRANT USAGE ON SCHEMA e GRANT SELECT ON ALL TABLES.
Erro de autenticação no MetabaseSenha incorreta ou pg_hba.conf não permite o IPConfirme senha e entrada correta no pg_hba.conf.
Container Metabase não iniciaPorta 3000 já em uso ou falta de RAMLibere a porta e aumente recursos da VM.

Segurança e hardening

  • Use senha forte para o usuário bi_readonly
  • Permita acesso remoto apenas do IP do Metabase no pg_hba.conf
  • Não exponha as portas 5432 e 3000 para a internet
  • Remova dados simulados após o laboratório
  • Desative ou apague o usuário de laboratório após uso

Checklist final

Referências

  1. Documentação oficial Metabase (conexão PostgreSQL) · Metabase (metabase.com)
  2. Documentação oficial PostgreSQL (GRANT) · PostgreSQL Global Development Group (postgresql.org)
  3. Documentação Docker (instalação no Ubuntu) · Docker, Inc. (docs.docker.com)
Verificação editorial
Publicado
11/09/2026
Última revisão
11/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.