Metabase

Open Source Simples Visualização Fácil de Usar

Ferramenta open source de business intelligence simples e intuitiva

O que é Metabase?

Metabase é uma ferramenta open source de business intelligence que se destaca pela simplicidade e facilidade de uso. Criada com o objetivo de democratizar o acesso aos dados, Metabase permite que qualquer pessoa na organização, independente do conhecimento técnico, possa fazer perguntas aos dados e criar visualizações de forma intuitiva.

História

Metabase foi fundada em 2015 por Sameer Al-Sakran e Tom Robinson com a missão de tornar os dados acessíveis para todos. A empresa foi criada após os fundadores perceberem a dificuldade que equipes não-técnicas tinham para acessar insights de dados. Desde então, Metabase cresceu rapidamente, sendo adotada por milhares de empresas ao redor do mundo, desde startups até grandes corporações.

Arquitetura

Metabase é construído em Clojure (backend) com frontend em React/JavaScript. A arquitetura é simples e monolítica, facilitando deployment e manutenção. Suporta diversos bancos de dados como PostgreSQL, MySQL, MongoDB, BigQuery, Snowflake e muitos outros. Pode ser executado como aplicação standalone ou via Docker.

Vantagens

  • Extremamente Fácil de Usar: Interface intuitiva para usuários não-técnicos
  • Setup Rápido: Instalação e configuração em minutos
  • Open Source: Gratuito com código aberto
  • Query Builder Visual: Criação de consultas sem SQL
  • Ampla Conectividade: Suporte a 20+ bancos de dados
  • Dashboards Responsivos: Visualizações que se adaptam a qualquer tela
  • Alertas e Pulsos: Notificações automáticas por email
  • Embedding: Incorporação fácil em aplicações

Desvantagens

  • Recursos Limitados: Menos funcionalidades que ferramentas enterprise
  • Visualizações Básicas: Opções de gráficos mais limitadas
  • Escalabilidade: Pode ter limitações com grandes volumes
  • Customização: Menos opções de personalização avançada
  • Governança: Controles de acesso mais simples

Principais Recursos

❓ Question Builder

Interface visual para fazer perguntas aos dados sem necessidade de SQL.

📊 Auto Dashboards

Criação automática de dashboards baseada nos dados disponíveis.

📧 Pulses & Alerts

Envio automático de relatórios por email e alertas baseados em condições.

🔍 SQL Editor

Editor SQL avançado para usuários técnicos com autocomplete e formatação.

📱 Mobile Responsive

Dashboards que funcionam perfeitamente em dispositivos móveis.

🔗 Easy Embedding

Incorporação simples de dashboards e gráficos em aplicações externas.

Versões Disponíveis

Metabase Open Source: Versão gratuita com recursos essenciais
Metabase Pro: Versão paga com recursos avançados de segurança
Metabase Enterprise: Versão enterprise com SSO, auditoria e suporte
Metabase Cloud: Versão hospedada na nuvem (SaaS)

Bancos de Dados Suportados

  • PostgreSQL
  • MySQL
  • MongoDB
  • SQLite
  • BigQuery
  • Snowflake
  • Redshift
  • ClickHouse
  • Presto/Trino
  • Apache Spark
  • Elasticsearch
  • E muitos outros...

Casos de Uso

🚀 Startups e PMEs

Solução ideal para empresas que precisam de BI rápido e sem custos de licenciamento.

Exemplo: Startup de e-commerce criando dashboards de vendas e métricas de crescimento.
👥 Self-Service Analytics

Capacitar equipes não-técnicas a explorar dados e criar relatórios independentemente.

Exemplo: Equipe de marketing criando relatórios de campanha sem depender de TI.
📊 Dashboards Departamentais

Criação rápida de dashboards específicos para diferentes departamentos.

Exemplo: Dashboard de RH com métricas de contratação, turnover e performance.
🔍 Análise Exploratória

Exploração inicial de dados para descobrir insights e padrões.

Exemplo: Análise de comportamento de usuários em aplicativo móvel.
📈 Relatórios Operacionais

Monitoramento de KPIs operacionais e métricas de negócio básicas.

Exemplo: Dashboard de vendas diárias com alertas para metas não atingidas.

Quando Usar Metabase

✅ Recomendado para:
  • Startups e pequenas empresas
  • Equipes que precisam de BI rápido e simples
  • Orçamento limitado para ferramentas de BI
  • Usuários não-técnicos que querem autonomia
  • Prototipagem rápida de dashboards
  • Ambientes que valorizam simplicidade
  • Projetos que precisam de setup rápido
⚠️ Considere alternativas se:
  • Precisa de visualizações muito avançadas (Tableau)
  • Requer governança enterprise robusta
  • Trabalha com volumes muito grandes de dados
  • Necessita de customização avançada (Superset)
  • Ambiente 100% Microsoft (Power BI)
  • Foco em monitoramento operacional (Grafana)

Exemplos Práticos

Instalação com Docker

# Docker Compose simples
version: '3.8'
services:
  metabase:
    image: metabase/metabase:latest
    container_name: metabase
    hostname: metabase
    volumes:
      - /dev/urandom:/dev/random:ro
    ports:
      - 3000:3000
    environment:
      MB_DB_TYPE: postgres
      MB_DB_DBNAME: metabase
      MB_DB_PORT: 5432
      MB_DB_USER: metabase
      MB_DB_PASS: mysecretpassword
      MB_DB_HOST: postgres
    depends_on:
      - postgres
      
  postgres:
    image: postgres:13
    container_name: postgres
    hostname: postgres
    environment:
      POSTGRES_USER: metabase
      POSTGRES_DB: metabase
      POSTGRES_PASSWORD: mysecretpassword
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

Configuração de Conexão

# Exemplo de configuração PostgreSQL
Host: localhost
Port: 5432
Database name: analytics
Username: metabase_user
Password: ********

# String de conexão
postgresql://metabase_user:password@localhost:5432/analytics

# Configuração via variáveis de ambiente
MB_DB_CONNECTION_URI=postgresql://user:pass@host:port/db
MB_DB_AUTO_SETUP=true
MB_ADMIN_EMAIL=admin@company.com
MB_ADMIN_FIRST_NAME=Admin
MB_ADMIN_LAST_NAME=User
MB_ADMIN_PASSWORD=admin123

Exemplo de Dashboard JSON

{
  "name": "Sales Dashboard",
  "description": "Dashboard de vendas mensais",
  "parameters": [],
  "cards": [
    {
      "name": "Total Sales",
      "description": "Vendas totais do período",
      "visualization_settings": {
        "graph.dimensions": ["created_at"],
        "graph.metrics": ["sum"],
        "graph.x_axis.scale": "timeseries"
      },
      "dataset_query": {
        "type": "query",
        "query": {
          "source-table": 1,
          "aggregation": [["sum", ["field", 5, null]]],
          "breakout": [["field", 2, {"temporal-unit": "month"}]]
        },
        "database": 1
      }
    },
    {
      "name": "Sales by Category",
      "visualization_settings": {
        "graph.dimensions": ["category"],
        "graph.metrics": ["sum"]
      },
      "dataset_query": {
        "type": "query",
        "query": {
          "source-table": 1,
          "aggregation": [["sum", ["field", 5, null]]],
          "breakout": [["field", 3, null]]
        },
        "database": 1
      }
    }
  ]
}

API Examples

# Autenticação
curl -X POST \
  http://localhost:3000/api/session \
  -H 'Content-Type: application/json' \
  -d '{
    "username": "admin@company.com",
    "password": "admin123"
  }'

# Listar databases
curl -X GET \
  http://localhost:3000/api/database \
  -H 'X-Metabase-Session: session-token'

# Executar query
curl -X POST \
  http://localhost:3000/api/dataset \
  -H 'Content-Type: application/json' \
  -H 'X-Metabase-Session: session-token' \
  -d '{
    "type": "native",
    "native": {
      "query": "SELECT * FROM sales WHERE date >= current_date - interval '\''30 days'\''"
    },
    "database": 1
  }'

# Criar dashboard
curl -X POST \
  http://localhost:3000/api/dashboard \
  -H 'Content-Type: application/json' \
  -H 'X-Metabase-Session: session-token' \
  -d '{
    "name": "API Dashboard",
    "description": "Dashboard criado via API"
  }'

Embedding Example








import React from 'react';

function MetabaseDashboard({ dashboardId, params }) {
  const embedUrl = `http://localhost:3000/public/dashboard/${dashboardId}`;
  
  return (