dbt_project.yml
Файл dbt_project.yml является обязательным для всех проектов dbt. Он содержит важную информацию, которая сообщает dbt, как работать с вашим проектом.
Каждому проекту dbt необходим файл dbt_project.yml — именно по нему dbt определяет, что каталог является проектом dbt. Кроме того, в этом файле содержится важная информация, которая сообщает dbt, как именно работать с вашим проектом. Принцип работы следующий:
- dbt использует YAML в нескольких местах. Если вы ранее не работали с YAML, полезно изучить, как в нём представлены массивы, словари и строки.
- По умолчанию dbt ищет файл
dbt_project.ymlв текущем рабочем каталоге и его родительских каталогах, однако вы можете указать другой каталог с помощью флага--project-dirили переменной окруженияDBT_PROJECT_DIR. - Укажите идентификатор вашего проекта dbt в файле
dbt_project.yml, используя параметрproject-idв конфигурацииdbt-cloud. Идентификатор проекта можно найти в URL вашего проекта dbt. Например, вhttps://YOUR_ACCESS_URL/11/projects/123456идентификатор проекта —123456.
Пример
Следующий пример представляет собой список всех доступных конфигураций в файле dbt_project.yml:
name: string
config-version: 2
version: version
profile: profilename
model-paths: [directorypath]
seed-paths: [directorypath]
test-paths: [directorypath]
analysis-paths: [directorypath]
macro-paths: [directorypath]
snapshot-paths: [directorypath]
docs-paths: [directorypath]
asset-paths: [directorypath]
function-paths: [directorypath]
packages-install-path: directorypath
clean-targets: [directorypath]
query-comment: string
require-dbt-version: version-range | [version-range]
flags:
<global-configs>
dbt-cloud:
project-id: project_id # Обязательный параметр
defer-env-id: environment_id # Необязательный параметр
account-host: account-host # По умолчанию используется `cloud.getdbt.com`; обязателен, если используется другой Access URL
exposures:
+enabled: true | false
quoting:
database: true | false
schema: true | false
identifier: true | false
snowflake_ignore_case: true | false # Fusion-only config. Aligns with Snowflake's session parameter QUOTED_IDENTIFIERS_IGNORE_CASE behavior.
# Ignored by dbt Core and other adapters.
metrics:
<metric-configs>
models:
<model-configs>
seeds:
<seed-configs>
semantic-models:
<semantic-model-configs>
saved-queries:
<saved-queries-configs>
snapshots:
<snapshot-configs>
sources:
<source-configs>
data_tests:
<test-configs>
vars:
<variables>
on-run-start: sql-statement | [sql-statement]
on-run-end: sql-statement | [sql-statement]
dispatch:
- macro_namespace: packagename
search_order: [packagename]
restrict-access: true | false
functions:
<function-configs>
Префикс +
dbt различает имя папки и конфигурацию, используя префикс + перед именем конфигурации. Префикс + используется только для конфигураций и применяется в файле dbt_project.yml в рамках соответствующего ключа ресурса. Он не применяется к:
- Jinja-макросу
config()внутри файла ресурса - свойству
configв файле.yml
Подробнее см. в разделе Using the + prefix.
Соглашение об именовании
Важно следовать правильным конвенциям именования YAML для конфигураций в вашем файле dbt_project.yml, чтобы dbt мог правильно их обработать. Это особенно важно для типов ресурсов с более чем одним словом.
-
Используйте дефисы (
-) при настройке типов ресурсов с несколькими словами в вашем файлеdbt_project.yml. Вот пример для сохраненных запросов:dbt_project.ymlsaved-queries: # Используйте дефисы для типов ресурсов в файле dbt_project.yml.
my_saved_query:
+cache:
enabled: true -
Используйте подчеркивание (
_) при настройке типов ресурсов с несколькими словами для YAML-файлов, отличных отdbt_project.yml. Например, вот тот же ресурс сохраненных запросов в файлеsemantic_models.yml:models/semantic_models.ymlsaved_queries: # Используйте подчеркивания везде, кроме файла dbt_project.yml.
- name: saved_query_name
... # Остальная часть конфигурации сохраненных запросов.
config:
cache:
enabled: true