Использование префикса +
Используйте префикс +, чтобы наглядно разграничить пути к ресурсам и конфигурации в файлах dbt_project.yml.
Префикс + — это синтаксическая особенность dbt, которая помогает однозначно различать пути к ресурсам и конфигурации в файлах dbt_project.yml.
- Он несовместим с файлами
dbt_project.yml, которые используютconfig-version1. - Он не применяется к:
- Jinja‑макросу
config()внутри файла ресурса - свойству
configв файле.yml.
- Jinja‑макросу
Например:
name: jaffle_shop
config-version: 2
...
models:
+materialized: view
jaffle_shop:
marts:
+materialized: table
На протяжении всей этой документации мы старались быть последовательными в использовании префикса + в файлах dbt_project.yml.
Однако ведущий символ + на самом деле требуется только в тех случаях, когда нужно устранить неоднозначность между путями к ресурсам и конфигурациями. Например, когда:
- Конфигурация принимает словарь в качестве входных данных. В качестве примера — конфигурация
persist_docs. - Или когда конфигурация использует ключ, совпадающий с частью пути к ресурсу. Например, если у вас есть директория моделей с именем
tags.
dbt объявил устаревшим указание конфигураций без префикса + в файле dbt_project.yml. Теперь только имена папок и файлов могут указываться без префикса + внутри конфигураций ресурсов в dbt_project.yml.
name: jaffle_shop
config-version: 2
...
models:
+persist_docs: # эта конфигурация является словарем, поэтому нужен префикс +
relation: true
columns: true
jaffle_shop:
schema: my_schema # префикс плюс здесь необязателен
+tags: # это конфигурация тегов
- "hello"
config:
tags: # в то время как это — путь к ресурсу tag
# изменено на config в версии v1.10
# Конфигурация ниже применяется к моделям
# в директории models/tags/
# Примечание: ведущий символ + здесь _не обязателен_,
# но он и не помешает.
materialized: view
Примечание: Использование префикса + в файле dbt_project.yml отличается от использования + для управления поведением слияния конфигураций (clobber vs. add) в других настройках конфигурации (в .yml и .sql файлах конкретных ресурсов). В настоящее время единственная конфигурация, которая поддерживает + для управления поведением слияния конфигураций, — это grants.
Примечание: Использование префикса + в dbt_project.yml отличается от использования + для управления поведением слияния конфигураций (замена или добавление) в других настройках конфигурации (конкретные файлы ресурсов .yml и .sql). В настоящее время единственная конфигурация, которая поддерживает + для управления поведением слияния конфигураций, это grants.