Могу ли я проверить уникальность двух столбцов?
Да, существует несколько разных вариантов.
Рассмотрим таблицу заказов, которая содержит записи из нескольких стран, и комбинация ID и кода страны уникальна:
| Loading table... |
Вот некоторые подходы:
1. Создать уникальный ключ в модели и протестировать его
models/orders.sql
select
country_code || '-' || order_id as surrogate_key,
...
models/orders.yml
version: 2
models:
- name: orders
columns:
- name: surrogate_key
data_tests:
- unique
2. Протестировать выражение
models/orders.yml
version: 2
models:
- name: orders
data_tests:
- unique:
arguments: # available in v1.10.5 and higher. Older versions can set the <argument_name> as the top-level property.
column_name: "(country_code || '-' || order_id)"
3. Использовать тест dbt_utils.unique_combination_of_columns
Это особенно полезно для больших наборов данных, так как он более производителен. Ознакомьтесь с документацией по пакетам для получения дополнительной информации.
models/orders.yml
version: 2
models:
- name: orders
data_tests:
- dbt_utils.unique_combination_of_columns:
arguments: # available in v1.10.5 and higher. Older versions can set the <argument_name> as the top-level property.
combination_of_columns:
- country_code
- order_id
Нашли ошибку?
0