Перейти к основному содержимому

Могу ли я проверить уникальность двух столбцов?

Да, есть несколько различных вариантов.

Рассмотрим таблицу заказов, которая содержит записи из нескольких стран, и комбинация ID и кода страны уникальна:

order_idcountry_code
1AU
2AU
......
1US
2US
......

Вот некоторые подходы:

1. Создать уникальный ключ в модели и протестировать его

models/orders.sql

select
country_code || '-' || order_id as surrogate_key,
...

models/orders.yml
version: 2

models:
- name: orders
columns:
- name: surrogate_key
tests:
- unique

2. Протестировать выражение

models/orders.yml
version: 2

models:
- name: orders
tests:
- unique:
column_name: "(country_code || '-' || order_id)"

3. Использовать тест dbt_utils.unique_combination_of_columns

Это особенно полезно для больших наборов данных, так как он более производителен. Ознакомьтесь с документацией по пакетам для получения дополнительной информации.

models/orders.yml
version: 2

models:
- name: orders
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- country_code
- order_id
0