unique_key
- Модели
- Снимки
Настройте unique_key
в блоке config
вашего SQL файла инкрементальной модели, в вашем файле models/properties.yml
или в вашем файле dbt_project.yml
.
{{
config(
materialized='incremental',
unique_key='id'
)
}}
models:
- name: my_incremental_model
description: "Пример инкрементальной модели с уникальным ключом."
config:
materialized: incremental
unique_key: id
name: jaffle_shop
models:
jaffle_shop:
staging:
+unique_key: id
snapshots:
<resource-path>:
+unique_key: column_name_or_expression
Описание
Имя столбца или выражение, которое является уникальным для входных данных снимка или инкрементальной модели. dbt использует это для сопоставления записей между набором результатов и существующим снимком или инкрементальной моделью, чтобы изменения могли быть правильно зафиксированы.
В dbt Cloud "Latest" и начиная с dbt v1.9, снимки определяются и настраиваются в YAML файлах в вашем каталоге snapshots/
. Вы можете указать одно или несколько значений unique_key
в ключе config
вашего YAML файла снимка.
Предоставление неуникального ключа приведет к неожиданным результатам снимка. dbt не будет проверять уникальность этого ключа, рассмотрите возможность тестирования исходных данных, чтобы убедиться, что этот ключ действительно уникален.
По умолчанию
Это обязательный параметр. Значение по умолчанию не предоставляется.
Примеры
Использование столбца id
в качестве уникального ключа
- Модели
- Снимки
В этом примере столбец id
является уникальным ключом для инкрементальной модели.
{{
config(
materialized='incremental',
unique_key='id'
)
}}
select * from ..
В этом примере столбец id
используется как уникальный ключ для снимка.
Вы также можете указать конфигурации в вашем файле dbt_project.yml
, если несколько снимков используют один и тот же unique_key
:
snapshots:
<resource-path>:
+unique_key: id