access
models:
- name: model_name
config:
access: private | protected | public # changed to config in v1.10
Вы можете применять модификаторы access в конфигурационных файлах, включая dbt_project.yml, либо задавать их для моделей по отдельности в properties.yml. Применение конфигурации access к подпапке изменяет значение по умолчанию для всех моделей в этой подпапке, поэтому убедитесь, что вы действительно подразумеваете такое поведение. При задании уровня доступа для отдельных моделей группа или подпапка может содержать разные уровни доступа, поэтому, назначая модели access: public, убедитесь, что это сделано осознанно.
Обратите внимание, что для обратной совместимости access поддерживается как ключ верхнего уровня, но без возможностей наследования конфигурации.
Существует несколько подходов к настройке доступа:
-
В
properties.ymlс использованием старого метода:models/properties_my_public_model.yml
models:
- name: my_public_model
config:
access: public # Старый способ, по‑прежнему поддерживается
# изменён на config в версии v1.10
-
В
properties.ymlс использованием нового метода (для версии 1.7 или выше). Используйте либо старый метод, либо новый метод, но не оба для одной и той же модели:models/properties_my_public_model.yml
models:
- name: my_public_model
config:
access: public
-
В
dbt_project.yml:dbt_project.ymlmodels:
my_project_name:
subfolder_name:
+group: my_group
+access: private # устанавливает значение по умолчанию для всех моделей в этой подпапке -
В файле
my_public_model.sql:models/my_public_model.sql-- models/my_public_model.sql
{{ config(access = "public") }}
select ...
После того как вы определите access, перезапустите производственное задание, чтобы применить изменения.
Определение
Уровень доступа модели, для которой вы объявляете свойства.
Некоторые модели (не все) предназначены для использования через функцию ref в разных группах.
| Loading table... |
Если вы попытаетесь сослаться на модель вне её поддерживаемого доступа, вы увидите ошибку:
dbt run -s marketing_model
...
dbt.exceptions.DbtReferenceError: Parsing Error
Node model.jaffle_shop.marketing_model attempted to reference node model.jaffle_shop.finance_model,
which is not allowed because the referenced node is private to the finance group.
Значение по умолчанию
По умолчанию все модели "защищены". Это означает, что другие модели в том же проекте могут ссылаться на них.