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

Конфигурации снимков

Связанная документация

Доступные конфигурации

Конфигурации, специфичные для снимков

Конфигурации, специфичные для ресурса, применимы только к одному типу ресурса dbt, а не к нескольким типам ресурсов. Вы можете определить эти настройки в файле проекта (dbt_project.yml), в файле свойств (models/properties.yml для моделей, аналогично для других ресурсов) или внутри файла ресурса, используя макрос {{ config() }}.

Следующие конфигурации, специфичные для ресурса, доступны только для Snapshots:

Миграция конфигурации снимков

Последние конфигурации снимков, введенные в dbt Core v1.9 (такие как snapshot_meta_column_names, dbt_valid_to_current и hard_deletes), лучше всего подходят для новых снимков. Для существующих снимков мы рекомендуем следующее, чтобы избежать любых несоответствий в ваших снимках:

Для существующих снимков

  • Миграция таблиц — Перенесите предыдущий снимок в новую схему таблицы и значения:
    • Создайте резервную копию ваших снимков.
    • Используйте операторы alter по мере необходимости (или скрипт для применения операторов alter), чтобы обеспечить согласованность таблицы.
  • Новые конфигурации — Преобразуйте конфигурации по одной, тестируя по мере продвижения.
warning

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

Общие конфигурации

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

dbt_project.yml

Настройка снимков

Снимки могут быть настроены несколькими способами:

Конфигурации снимков применяются иерархически в порядке, указанном выше, с приоритетом более высоких.

Примеры

  • Применение конфигураций ко всем снимкам

    Чтобы применить конфигурацию ко всем снимкам, включая те, что в установленных пакетах, вложите конфигурацию непосредственно под ключ snapshots:

    dbt_project.yml
    snapshots:
    +unique_key: id
  • Применение конфигураций ко всем снимкам в вашем проекте

    Чтобы применить конфигурацию ко всем снимкам только в вашем проекте (например, исключая любые снимки в установленных пакетах), укажите имя вашего проекта как часть пути к ресурсу.

    Для проекта с именем jaffle_shop:

    dbt_project.yml
    snapshots:
    jaffle_shop:
    +unique_key: id

    Аналогично, вы можете использовать имя установленного пакета для настройки снимков в этом пакете.

  • Применение конфигураций только к одному снимку

    Вы также можете использовать полный путь к ресурсу (включая имя проекта и подкаталоги) для настройки отдельного снимка из вашего файла dbt_project.yml.

    Для проекта с именем jaffle_shop, с файлом снимка в каталоге snapshots/postgres_app/, где снимок называется orders_snapshot (как выше), это будет выглядеть так:

    dbt_project.yml
    snapshots:
    jaffle_shop:
    postgres_app:
    orders_snapshot:
    +unique_key: id
    +strategy: timestamp
    +updated_at: updated_at

    Вы также можете определить некоторые общие конфигурации в блоке config снимка. Однако мы не рекомендуем это для обязательной конфигурации снимка.

    dbt_project.yml
    version: 2

    snapshots:
    - name: orders_snapshot
    +persist_docs:
    relation: true
    columns: true
0