Business Intelligence

BI & Analytics
Fundamentos

De tabelas em bruto a insight de negócio: uma explicação de modelação de dados, DAX, SQL e os KPIs que guiam decisões em finanças e RH.

Power BI DAX SQL Star Schema Analytics
8 min de leitura

Business Intelligence tornou-se um daqueles termos que significam tudo e nada ao mesmo tempo. Pergunta a dez pessoas e terás dez respostas: dashboards, data warehouses, SQL, "transformar dados em decisões". Todas parcialmente certas. Nenhuma completa.

Este guia constrói o quadro de raiz. Do modelo de dados que torna a analytics possível, passando pela linguagem que alimenta as medidas do Power BI, até aos KPIs de domínio que de facto respondem a perguntas de negócio. No fim, terás um mapa mental claro de como a stack de BI se encaixa, e onde cada peça mais importa.

Fundação

Star Schema: a estrutura que torna o BI rápido

Antes de qualquer medida DAX ou query SQL poder funcionar corretamente, o modelo de dados tem de estar certo. A maioria dos problemas de performance em BI (relatórios lentos, totais errados, medidas que se comportam de forma inesperada) remonta a um modelo mal desenhado. Acerta no modelo e tudo o resto fica mais fácil.

O padrão dominante em BI é o Star Schema. Organiza os dados em dois tipos de tabelas:

Fact Table
Regista eventos e transações. Contém medidas numéricas (receita, quantidade, custo) e chaves estrangeiras que ligam a cada dimensão. Tipicamente a maior tabela do modelo.
Dimension Table
Descreve o contexto de cada facto. Data, Produto, Cliente, Região, Colaborador. Contém os atributos por que filtras e agrupas nos relatórios, os substantivos do teu modelo de dados.
O Grain
O nível de detalhe mais fino guardado na fact table. "Uma linha por linha de fatura." Definir o grain primeiro evita erros de modelação caros de corrigir depois de o modelo estar construído.

A forma de "estrela" emerge naturalmente: a fact table fica no centro, com as dimension tables a irradiar para fora. Cada chave estrangeira na fact table liga à chave primária de uma dimensão. Uma fact table de vendas pode ter chaves para Data, Cliente, Produto e Região, quatro dimension tables, quatro pontas da estrela.

A alternativa é o Snowflake Schema, onde as dimensões são normalizadas em subdimensões. Poupa armazenamento mas obriga o Power BI a fazer mais joins, abranda as queries e torna o DAX significativamente mais complexo de escrever. Para a maioria das cargas de BI, o Star Schema ganha ao Snowflake. A troca de um pouco mais de armazenamento por medidas dramaticamente mais simples e melhor performance compensa quase sempre.

O erro de modelação mais comum: misturar factos de grains diferentes na mesma tabela. Se a tua fact table tem uma linha por fatura mas tentas acrescentar uma linha por objetivo mensal, misturaste dois grains. Separa-os em fact tables distintas e constrói um modelo que as consiga relacionar corretamente.
Power BI

DAX: a linguagem de medidas que precisas de perceber

DAX (Data Analysis Expressions) é a linguagem de fórmulas do Power BI, do Analysis Services e do Power Pivot do Excel. Parece fórmulas de Excel, mas opera sobre tabelas e colunas, não células. Perceber um conceito separa os principiantes dos praticantes:

01
Filter Context
Toda a medida DAX executa dentro de um filter context, o conjunto de filtros aplicados por rótulos de linha, cabeçalhos de coluna, slicers e filtros de relatório. A mesma medida devolve valores diferentes consoante onde está colocada. Perceber isto é 80% do DAX.
02
CALCULATE()
A função mais importante em DAX. Avalia uma expressão num filter context modificado. Toda a medida avançada (crescimento homólogo, % do total, médias móveis) usa o CALCULATE para acrescentar, remover ou sobrepor filtros antes de calcular um resultado.
03
Time Intelligence
TOTALYTD, DATEADD, SAMEPERIODLASTYEAR. As funções temporais nativas do Power BI exigem uma tabela de dimensão de datas adequada e sem lacunas: datas contínuas da mais antiga à mais recente dos teus dados, marcada como tabela de datas.

Para além destes três, os padrões que aparecem em quase todas as soluções de BI em produção são:

  • Medidas vs colunas calculadas: As medidas são calculadas em tempo de query usando o filter context atual. As colunas calculadas são calculadas no refresh e guardadas no modelo. Usa medidas para agregações, colunas calculadas só quando precisas de um valor para filtrar ou agrupar.
  • DIVIDE() em vez do operador /: lida com a divisão por zero de forma elegante, devolvendo um blank (ou uma alternativa indicada) em vez de partir o visual.
  • VAR / RETURN: guardam resultados intermédios para evitar recalcular a mesma expressão várias vezes numa medida complexa. Melhora a legibilidade e a performance.
  • ALL() e ALLEXCEPT(): removem filtros do contexto, usadas dentro do CALCULATE para calcular totais, percentagens ou rankings que ignoram os slicers.
O maior salto de produtividade no desenvolvimento em Power BI: aprende a ler o filter context antes de escrever a medida. Pergunta a ti próprio: "que filtros estão ativos quando esta medida é avaliada?". Depois escreve o CALCULATE para ajustar esse contexto conforme necessário.
SQL

Padrões de SQL que todo o analista de BI usa

SQL é a linguagem do data warehouse, a camada onde os dados de origem em bruto são transformados em tabelas limpas e modeladas que o Power BI consegue consultar. Para além do básico SELECT/WHERE/GROUP BY, a analytics de BI depende muito de um conjunto específico de padrões.

Window Functions
ROW_NUMBER, RANK, LAG, LEAD, SUM OVER PARTITION BY. Permitem cálculos ao longo de linhas sem colapsar os resultados. Essenciais para totais acumulados, comparações período-a-período e ranking dentro de grupos, operações que o GROUP BY sozinho não consegue fazer.
CTEs
Common Table Expressions com a cláusula WITH. Partem queries complexas em passos nomeados e legíveis, em vez de subqueries profundamente aninhadas. Cada CTE pode referenciar as anteriores; o resultado é SQL que se lê como uma história passo a passo de como os dados são transformados.
Tipos de JOIN
INNER (só linhas correspondentes), LEFT (todas as da esquerda, nulos para as sem correspondência à direita), FULL OUTER (todas as linhas de ambas). O mais mal usado: LEFT JOIN seguido de WHERE tabela_direita.id IS NOT NULL, idêntico a um INNER JOIN, mas mais difícil de ler e às vezes mais lento.
Qualidade de Dados
COUNT(*) vs COUNT(coluna) para detetar nulos. CASE WHEN para sinalizar anomalias. Self-joins para encontrar duplicados. GROUP BY com HAVING COUNT(*) > 1 para fazer emergir chaves duplicadas. Correr estas verificações antes de construir o modelo poupa horas de debugging mais tarde.

Um padrão que vale a pena destacar em detalhe: a comparação período-a-período. Em SQL, isto significa juntar uma tabela a si própria (ou usar o LAG com uma window function) para obter o valor do período anterior na mesma linha que o do período atual, para que se calcule a diferença num único SELECT.

Conhecimento de Domínio

Os KPIs que os stakeholders de negócio pedem mesmo

Competências técnicas de BI sem conhecimento de domínio produzem dashboards que ninguém usa. As métricas que aparecem nos relatórios executivos e nos board packs seguem padrões reconhecíveis na maioria das indústrias. Finanças e RH são os dois domínios mais comuns para analistas de BI, e cada um tem o seu próprio vocabulário.

KPIs de Finanças
Métricas de P&L e FP&A
Receita, Margem Bruta, EBITDA, Margem Operacional. Desvio Orçamentado vs Real (absoluto e %). Precisão da Previsão (quão perto a previsão ficou do resultado real). Ciclo de Conversão de Caixa. São os números que aparecem em todos os board packs, todos os meses, em todas as empresas.
RH / People Analytics
Métricas de Força de Trabalho
Headcount (colaboradores ativos num momento). Taxa de Rotatividade (saídas / headcount médio). Time-to-Fill (dias da abertura da vaga à oferta aceite). eNPS (Employee Net Promoter Score). Taxa de Absentismo. Planeamento de FTE (full-time equivalents, considerando part-time e prestadores).

O erro mais comum nos dashboards de finanças: confundir Orçamentado vs Real com Previsão vs Real. O orçamento é fixado no início do ano e mede contra o plano original. A previsão atualiza-se ao longo do ano e reflete a melhor estimativa atual de onde o ano vai terminar. Um bom dashboard de FP&A acompanha ambos: o desvio do orçamento diz-te onde estás face ao plano; a previsão diz-te para onde vais.

Na analytics de RH, headcount parece simples mas tem três definições válidas: num momento (colaboradores ativos numa data específica), médio (headcount médio ao longo de um período) e ajustado a FTE (ponderado para part-time). Quando os stakeholders dizem "headcount", esclarece sempre qual a definição que querem antes de construir a medida.

Arquitetura

A stack de BI moderna: por onde os dados passam antes do Power BI

O Power BI é a última milha, a camada de visualização com que os executivos interagem. Por trás dele está uma stack que ingere, armazena e transforma os dados antes de chegarem a um dashboard. Perceber a stack ajuda-te a fazer debug de problemas, a comunicar com engenheiros de dados e a desenhar soluções que escalam.

Sistemas de Origem
ERP, CRM, HRMS, APIs
Ingestão
Extract & Load (EL)
Data Warehouse
Raw → Staging → Marts
Modelo Semântico
Star Schema + DAX
Power BI
Relatórios & Dashboards

O data warehouse está tipicamente organizado em camadas: uma camada raw que guarda os dados de origem exatamente como recebidos, uma camada de staging onde os dados são limpos e padronizados, e uma camada de marts onde vivem os star schemas específicos de cada domínio: o mart de Finanças, o de RH, o de Vendas. O Power BI liga-se à camada de marts.

A camada de transformação (a lógica SQL que move os dados de raw para mart) é cada vez mais construída com dbt (data build tool), que te deixa escrever transformações SQL como modelos versionados, testados e documentados. No lado cloud, as combinações comuns são Snowflake + dbt + Fivetran, ou Azure Synapse + Power BI numa stack nativa da Microsoft.

Como analista de BI, não precisas de construir o pipeline de ingestão, mas precisas de saber que existe, perceber como os dados chegam ao warehouse, e ser capaz de rastrear um número errado de trás para a frente pelas camadas até encontrar onde correu mal.

Ver no GitHub Código-fonte e dados deste guia de referência

Mais artigos

Explicações de finanças, dados e dos sistemas por trás deles.