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

Конфигурации моделей

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

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

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

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

dbt_project.yml

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

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

dbt_project.yml

Конфигурации, специфичные для хранилища

Конфигурирование моделей

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

  1. Используя Jinja-макрос config() внутри модели.
  2. Используя config как свойство ресурса в .yml‑файле.
  3. Из YAML‑файла проекта (dbt_project.yml), в разделе models:. В этом случае модель, находящаяся на самом глубоком уровне вложенности, будет иметь наивысший приоритет.

Наиболее специфичная конфигурация всегда имеет приоритет. Например, в YAML‑файле проекта конфигурации, применённые к подкаталогу marketing, будут иметь приоритет над конфигурациями, применёнными ко всему проекту jaffle_shop. Чтобы применить конфигурацию к модели или каталогу моделей, определите путь к ресурсу в виде вложенных ключей словаря.

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

Пример

Конфигурирование каталогов моделей в dbt_project.yml

Чтобы настроить модели в вашем файле dbt_project.yml, используйте опцию конфигурации models:. Убедитесь, что вы указали пространство имен для ваших конфигураций в вашем проекте (показано ниже):

dbt_project.yml

name: dbt_labs

models:
# Убедитесь, что вы указали пространство имен для конфигураций моделей в вашем проекте
dbt_labs:

# Это настраивает модели, найденные в models/events/
events:
+enabled: true
+materialized: view

# Это настраивает модели, найденные в models/events/base
# Эти модели будут эфемерными, так как конфигурация выше будет переопределена
base:
+materialized: ephemeral

...

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

Некоторые типы конфигураций специфичны для конкретной модели. В этих случаях размещение конфигураций в файле dbt_project.yml может быть неудобным. Вместо этого вы можете указать эти конфигурации в начале файла модели .sql или в его индивидуальных YAML-свойствах.

models/events/base/base_events.sql
{{
config(
materialized = "table",
tags = ["core", "events"]
)
}}

```sql
select * from {{ ref('raw_events') }}
models/events/base/properties.yml

models:
- name: base_events
description: "Standardized event data from raw sources"
columns:
- name: user_id
description: "Unique identifier for a user"
data_tests:
- not_null
- unique
- name: event_type
description: "Type of event recorded (click, purchase, etc.)"

Нашли ошибку?

0
Loading