Identificadores únicos artificiales generados internamente por el almacén de datos para desacoplar los modelos analíticos de las claves operativas de origen.
Explicación y Contexto Conceptual
Una Clave Subrogada (Surrogate Key) es una clave primaria sintética y sin significado intrínseco de negocio (típicamente un entero secuencial o un hash MD5/SHA-256) asignada por el Data Warehouse a cada registro de una tabla de dimensiones.
Depender de las claves naturales u operativas de los sistemas de origen (como el `user_id` de Shopify o el `id` de Salesforce) presenta serios riesgos: las claves pueden colisionar al fusionar dos empresas, pueden cambiar con el tiempo o pueden contener caracteres no compatibles con el motor de base de datos. Además, para implementar dimensiones de cambio lento (SCD Tipo 2), es imprescindible tener múltiples filas para un mismo cliente, cada una con su propia clave subrogada única.
En proyectos dbt modernos, las claves subrogadas se generan de forma determinística utilizando la función macro `dbt_utils.generate_surrogate_key(['columna_a', 'columna_b'])`.
Ejemplo en la Práctica
Para rastrear un cliente en múltiples fuentes, el Data Warehouse genera una clave subrogada `dim_customer_sk` mediante el hash de su correo electrónico normalizado.