En pocas palabras
Centraliza definiciones de métricas y relaciones del negocio para que aplicaciones, BI y agentes consulten con el mismo significado.
Qué problema resuelve
Indicadores contradictorios por reglas duplicadas en dashboards y consultas.
Cuándo utilizarlo
Analítica compartida y text-to-SQL. Ejemplo: definir ingresos netos y su periodo de reconocimiento una sola vez.
De la idea a la práctica
Funcionamiento, ejemplos y decisiones para pasar al siguiente nivel.
En el Radar compartido: Trial (valoración de la edición aportada).
Cómo funciona
La capa traduce conceptos del negocio a consultas sobre los datos, aplicando definiciones consistentes. Soluciones como dbt Semantic Layer separan esa lógica de cada consumidor.
Ejemplo de uso
Definir ventas netas como ventas reconocidas menos devoluciones, con moneda y fecha de negocio explícitas. El tablero comercial y un asistente consultan esa definición en lugar de recrearla.
Ejemplo con dbt MetricFlow
semantic_models:
- name: creditos
model: ref('fct_creditos')
defaults:
agg_time_dimension: fecha_corte
entities:
- name: credito
type: primary
expr: credito_id
- name: cliente
type: foreign
expr: cliente_id
dimensions:
- name: fecha_corte
type: time
type_params: { time_granularity: day }
- name: pais
type: categorical
- name: producto
type: categorical
measures:
- name: saldo_total
agg: sum
expr: saldo_capital
- name: saldo_mora_30
agg: sum
expr: case when dias_mora > 30 then saldo_capital else 0 end
metrics:
- name: indice_mora_30
label: Índice de mora a más de 30 días
description: Saldo de capital con más de 30 días de mora sobre el saldo total.
type: ratio
type_params:
numerator: saldo_mora_30
denominator: saldo_total
dbt sl query --metrics indice_mora_30 --group-by metric_time__month,credito__pais
La definición de «mora 30» existe una vez; los dashboards, las hojas de cálculo, la API y un asistente de IA la consultan por nombre.
Tipos de métrica
| Tipo | Ejemplo |
|---|---|
| Simple | Número de desembolsos |
| Ratio | Índice de mora, tasa de aprobación |
| Derivada | Margen = ingresos por intereses − costo de fondeo − provisiones |
| Acumulada | Desembolsos acumulados en el año |
| Conversión | Solicitudes que terminan en desembolso en 7 días |
Opciones
| Solución | Rasgos |
|---|---|
| dbt Semantic Layer (MetricFlow) | Definida junto a las transformaciones de dbt |
| Cube | Open source, API (SQL, REST, GraphQL), caché y control de acceso |
| LookML (Looker) | Integrada en la herramienta de BI |
| Vistas de métricas en el almacén | Databricks, Snowflake y otros ofrecen objetos semánticos nativos |
| Ligera en la herramienta de BI | Models y metrics de Metabase |
Semantic layer y agentes de IA
Pedir a un LLM que escriba SQL directamente sobre tablas produce consultas plausibles con joins o filtros incorrectos. Con una capa semántica, el agente elige métricas y dimensiones existentes y la capa genera el SQL correcto, aplicando además permisos por fila. Es la forma más fiable de ofrecer «pregúntale a los datos» en lenguaje natural (Databricks Assistant, asistentes de BI).
Gobierno de las métricas
- Cada métrica tiene dueño de negocio, definición en lenguaje natural y cálculo.
- Los cambios en una métrica se revisan como código (PR) y se comunican a los consumidores.
- Las métricas certificadas se distinguen de las exploratorias.
- Contrasta los resultados con los informes oficiales (contabilidad, regulador) antes de declarar la capa como fuente de verdad.
Criterios de implementación
Validar resultados con expertos y probar uniones que puedan duplicar filas. Gestionar versiones y adopción: la capa no corrige por sí sola datos defectuosos ni reportes heredados.
Continúa en las fuentes
Documentación oficial para verificar detalles y explorar más.