Identifiant artificiel (généralement un entier auto-incrémenté ou un hash) généré par le data warehouse pour identifier de façon unique une ligne dans une table de dimension, indépendamment de la clé métier (business key ou natural key) du système source. L'usage des surrogate keys présente plusieurs avantages : immunité aux changements de clés dans les systèmes sources, support des SCD Type 2 (plusieurs lignes pour la même entité avec des clés différentes), performance des JOINs sur entier vs. chaîne de caractères, et décorrélation du modèle analytique des systèmes opérationnels. La clé métier est conservée comme attribut descriptif. En pratique, dbt génère souvent les surrogate keys via la macro dbt_utils.generate_surrogate_key().