Descubra como Metabase + MySQL + GPT vão turbinar os dashboards de sua loja em minutos!

Por Cristiano Soares em 15/01/2025

10 min de leitura

Se você deseja transformar seus dados em gráficos e dashboards de forma simples e eficaz, o Metabase é a ferramenta ideal. Neste artigo, vamos mostrar como implantá-lo utilizando Docker, conectá-lo a um banco de dados MySQL e até criar consultas SQL automatizadas usando inteligência artificial, como o GPT.

O Que é o Metabase?

O Metabase é uma ferramenta de Business Intelligence (BI) gratuita e de código aberto. Ele permite que usuários, mesmo sem conhecimento avançado em análise de dados, criem relatórios visuais e dashboards a partir de bases de dados como MySQL, PostgreSQL, entre outras. É uma alternativa simples e poderosa ao Power BI, ideal para quem busca agilidade na visualização de dados.

Passo 1: Implantando o Metabase com Docker

A instalação do Metabase é rápida e pode ser feita via Docker. Isso facilita o gerenciamento do ambiente e reduz problemas de compatibilidade.

1. Certifique-se de que o Docker e o Docker Compose estão instalados no seu sistema.

2. Crie um arquivo com nome docker-compose.yml, copie e cole o conteúdo abaixo nele fazendo os ajustes necessários.

version: "3"
services:
  metabase:
    container_name: metabase
    image: metabase/metabase:latest
    restart: always
    environment:
      - MB_DB_TYPE=mysql
      - MB_DB_HOST=hostname do seu banco de dados
      - MB_DB_PORT=3306
      - MB_DB_DBNAME=metabase
      - MB_DB_USER=usuário que será usado pelo metabase
      - MB_DB_PASS=senha do usuário acima
    ports:
      - "3000:3000"

Observe em environment, que estou definindo as informações necessárias para que o Metabase consiga se conectar ao servidor de banco de dados que estiver disponível, isso é necessário se quisermos algo mais consistente como em um ambiente de produção, se tiver apenas testando ou se não quiser conectar a um servidor de banco de dados, você pode comentar todo o bloco environment e o Metabase irá usar um banco interno chamado H2 que é um banco de dados relacional leve, escrito em Java, ideal para desenvolvimento e testes.

3. Agora, execute o seguinte comando no terminal para baixar e iniciar o Metabase

docker-compose up -d

4. Acesse o Metabase no navegador digitando http://localhost:3000.

Com isso, o Metabase estará em execução, pronto para ser configurado.


Passo 2: Configurando o Metabase e conectando Banco MySQL

Agora que o Metabase está rodando, precisamos configurar e conectá-lo à base de dados MySQL da sua loja virtual. Mas antes, vamos criar nosso banco de dados e popula-los com os dados necessários a esse artigo.

Para nossos exemplos, vamos criar um banco chamado demo_metabase

CREATE DATABASE IF NOT EXISTS `demo_metabase` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

Com uma tabela chamada orders que registra todas as vendas realizadas, essa tabela possui a estrutura abaixo.

CREATE TABLE `orders` (
    `order_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    `product_name` VARCHAR(64) NOT NULL,
    `quantity` SMALLINT UNSIGNED NOT NULL,
    `date_added` DATETIME NOT NULL,
    PRIMARY KEY (`order_id`)
) ENGINE = InnoDB;

E que está populada com os seguintes dados

INSERT INTO `orders` (`order_id`, `product_name`, `quantity`, `date_added`) VALUES (NULL, 'cadeira', '2', '2025-01-18 00:16:03.000000'), (NULL, 'mouse', '5', '2025-01-18 00:16:03.000000'),(NULL, 'mouse', '1', '2025-01-18 00:16:03.000000'),(NULL, 'mouse', '7', '2025-01-18 00:16:03.000000'),(NULL, 'cadeira', '1', '2024-11-10 00:16:03.000000'),(NULL, 'teclado', '1', '2025-01-18 00:16:03.000000'),(NULL, 'teclado', '1', '2025-01-18 00:16:03.000000'),(NULL, 'mouse', '1', '2025-01-18 00:16:03.000000'),(NULL, 'cadeira', '3', '2025-01-18 00:16:03.000000'),(NULL, 'cadeira', '1', '2024-10-18 00:16:03.000000'),(NULL, 'mouse', '3', '2025-01-18 00:16:03.000000'),(NULL, 'teclado', '2', '2025-01-18 00:16:03.000000'),(NULL, 'mouse', '8', '2025-01-18 00:16:03.000000'),(NULL, 'mouse', '3', '2025-01-18 00:16:03.000000'),(NULL, 'cadeira', '2', '2025-01-18 00:16:03.000000'),(NULL, 'cadeira', '2', '2024-11-18 00:16:03.000000'),(NULL, 'cadeira', '1', '2024-09-18 00:16:03.000000');

Pronto, agora que já temos nossos dados, vamos seguir para configuração do Metabase.

Ao acessar http://localhost:3000 pela primeira vez, você deve ser deparar com essa tela, basta seguir o assistente até o final e já terá tudo configurado e estará com seu primeiro banco de dados conectado.

Se tudo tiver OK, você deve se deparar com essa tela de boas vindas no primeiro acesso

Metabase - Telas de boas bindas

O Metabase tá disponível em uma grande variedade de idiomas, escolha o que lhe for mais adequado.

Aqui, você irá criar o primeiro usuário para o Metabase, esse será o usuário administrativo, depois de logado você poderá criar outros usuários livremente, tanto administrativos quanto com permissões normais.

Sinalize como pretende usar o Metabase, geralmente sempre seleciono o equivalente a ambos, não se preocupe, pois a seleção não traz maiores impactos na utilização, ele apenas irá trazer instruções/dicas adicionar dependendo da sua escolha.

Como pode ver, o Metabase suporta uma variedade de bancos de dados, nessa tela podemos selecionar com qual iremos trabalhar. Você pode escolher um para configurar ou deixar para depois, caso depois seja sua escolha, no painel logado, vá Configurações de Admin > Banco de Dados para conectar seus banco de dados. Para nosso exemplo, você precisa se conectar ao banco demo_metabase.

Com seu banco de dados selecionado, basta informar as credencias para que o Metabase consiga se conectar a ele, eu recomendo que crie um usuário com permissões limitadas somente para o Metabase

Por último, se quiser ajudar com a melhoria do produto compartilhando seus dados de uso.

Pronto, a partir daqui vou assumir que seu Metabase já tá devidamente configurado, incluindo conectado ao banco de dados demo_metabase.

Passo 3: Criando Perguntas e Dashboards

Com o banco demo_metabase conectado e a tabela orders criada e populada, é hora de criar as primeiras perguntas e dashboards.

1. No painel principal, clique em NovoPergunta.

2. Selecione o banco demo_metabase e em seguida a tabela orders

Agora que já selecionamos a fonte de nossos dados, vamos construir a pergunta. Para isso

  1. Em filtrar selecione Date Added em seguida Últimos 30 dias
  2. Em sumarizar, clique em Escolha uma função ou métrica, seleciona Soma de, em seguida seleciona a coluna Quantity
    1. Ao lado, clique em Selecione uma coluna para agrupar e selecione a coluna Product Name
  3. Logo abaixo, clique em Ordenar e selecione Sum of Quantity, certifique-se que a seta tá apontando para baixo, pois o objetivo é ordenar pelo mais vendidos
  4. Se seguiu todos os passos corretamente, sua tela deve está como a imagem abaixo

Clique no botão Visualizar e teremos a resposta para nossa pergunta, que deve parecer com a imagem abaixo, se tiver mostrando gráfico no lugar da tabela igual da imagem, clique no botão Display no rodapé da tela e selecione Tabela. Quando verificar que tá tudo OK, pode clicar no botão Salvar para que possamos reutilizar essa pergunta outras vezes

Dê um nome para a pergunta e selecione em qual coleção a pergunta deve ser salva

Com a pergunta salva, vamos agora adiciona-la a um dashboard, assim, toda vez que acessarmos o Metabase, já teremos esses dados em nosso dashboard. Como o Metabase gosta de facilitar as coisas pra gente, ele já se encarregou de perguntar se queremos adicionar, vamos clicar em Sim, por favor!

Como estamos começando agora, ainda não temos um dashboard, por isso vamos criar um com o nome Demo Dashboard

Depois de criado, vamos seleciona-lo

Pronto, já temos nosso primeiro dashboard dinâmico, ele irá se atualizar conforme as alterações em nossos dados, para testar, basta alterar alguma quantidade em nossa base de dados e atualizar a tela, que ele irá refletir as alterações. Como pode observar, está em modo edição, explore um pouco os recursos oferecidos nessa leta, quando estiver tudo OK, basta clicar em salvar.

Passo 4: Criando Consultas SQL no Metabase

Com conhecimento em SQL, você pode realizar análises mais avançadas através do editor SQL do Metabase. Clique em Novo, Consulta SQL

Selecione o banco demo_metabase, cole a query e clique no botão Executar Consulta (CTRL + Enter)

SELECT product_name, SUM(quantity) AS total_vendido
FROM orders
WHERE date_added >= CURDATE() - INTERVAL 30 DAY
GROUP BY product_name
ORDER BY total_vendido DESC;

Pronto, com essa consulta teremos os produtos mais vendidos no últimos 30 dias, customize da forma que considerar adequado, depois só salvar, criar dashboard, enfim, tudo que fizemos na parte de pergunta...

Antes de continuarmos, deixa te mostrar algo bem legal, se reparar no rodapé do lado direito, verá Mostrando 3 linhas, essa é a quantidade de registros que nossa query ou nossa pergunrta produziu, saiba que além de visualizar esses resultados na tela, o Metabase também lhe permite exportar esses resultados, para fazer isso, basta clicar no botão Baixar Resultados.

Passo 5: Automatizando Consultas SQL com IA através do GPT

Como a moda agora é IA em tudo, não poderiamos deixa-la de fora. Apesar de o Metabase oferecer suporte a integração com a API da OpenAI em uma de suas versões experimentais, habilitar a mesma requer um pouco de configuração adicional além de ser necessário uma conta com créditos na OpenAI, por isso, vou optar pela abordagem a seguir que não nos afasta muito da opção oferecida pela integração.

Primeiro de tudo, vamos fazer uma espécie de RAG extremamente básico, subindo a estrutura da nossa tabela e instruindo o GPT a analisa-lo para que consiga responder perguntas posteriores baseadas nela.

Você é DBA e seu foco é construir query para o mysql que serão usadas para consultas ao Metabase, para isso usará como referência a estrutura da tabela a seguir que foi extraida de uma loja virtual, analise a estrutura.

CREATE TABLE orders (
    order_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    product_name VARCHAR(64) NOT NULL,
    quantity SMALLINT UNSIGNED NOT NULL,
    date_added DATETIME NOT NULL,
    PRIMARY KEY (order_id)
) ENGINE = InnoDB;

Observe que estou usando a versão gratuita do GPT e sem nenhum tipo de conta, a mesma é acessível em https://chatgpt.com. Veja na imagem a seguir, que ele recebeu nosso prompt e já realizou a analise da tabela, inclusive já sugerindo algumas querys.

Agora podemos criar os mais variados prompts para extrair o máximo de informações de nossa base de dados. Para nosso artigo, vamos criar um prompt simples, até porque nossa tabela e nossa amostra de dados são simples né.

Quero os produtos mais vendidos no ano de 2024

Com esse simples prompt, conseguimos identificar em nossa pequena amostra de dados, que o produto mais vendido no ano de 2024 foi a cadeira

Conclusão

Neste artigo, mostrei como implantar o Metabase, conectá-lo ao MySQL e explorar dados usando perguntas, dashboards e consultas SQL. Além disso, vimos como a inteligência artificial pode automatizar processos e facilitar ainda mais a análise de dados mesmo para usuário sem nenhum conhecimento de SQL.

Agora é sua vez! Experimente essas etapas, otimize suas análises e transforme dados em insights valiosos. Se este conteúdo foi útil, compartilhe com colegas e continue acompanhando nossas dicas. 🚀


IA GPT Metabase MYSQL dashboards

Escreva um comentário

Por favor, logue-se ou registre-se para comentar!