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

Использование префикса +

Используйте префикс +, чтобы наглядно разграничить пути к ресурсам и конфигурации в файлах dbt_project.yml.

Префикс + — это синтаксическая особенность dbt, которая помогает однозначно различать пути к ресурсам и конфигурации в файлах dbt_project.yml.

  • Он несовместим с файлами dbt_project.yml, которые используют config-version 1.
  • Он не применяется к:
    • Jinja‑макросу config() внутри файла ресурса
    • свойству config в файле .yml.

Например:

dbt_project.yml
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.

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.

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

0