Use more than one key as unique_key


#1

Can I use multiple keys as unique_key in config?
e.g. Something like this: unique_key = ['date_sk', 'campaign_id', 'message_type', 'variation_name']


#2

Hey @nicor88! Great question. unique_key accepts any valid SQL. So, you could do:

unique_key = 'field_1 || field_2 || field_3'

…or something similar. Generally, what we recommend is for all models to include a unique key in the contents of the model itself. This helps with uniqueness testing so that you can avoid fanout errors in your SQL. If there is no natural key in the underlying data and you need to create a surrogate key, I’d recommend using the surrogate key macro in dbt-utils to create one. Then you can easily pass that field into the unique_key config.