Доступ к моделям
Группы моделей и доступ и группы пользователей и доступ означают две разные вещи. "Группы пользователей и доступ" — это специфический термин, используемый в dbt Cloud для управления разрешениями. Обратитесь к Доступ пользователей для получения дополнительной информации.
Эти две концепции будут тесно связаны, так как мы разрабатываем рабочие процессы для совместной работы над несколькими проектами в этом году:
- Пользователи с доступом к разработке в проекте dbt могут просматривать и изменять все модели в этом проекте, включая приватные модели.
- Пользователи в той же учетной записи dbt Cloud без доступа к разработке в проекте не могут просматривать приватные модели этого проекта и могут зависеть только от его публичных моделей.
Связанная документация
Группы
Модели могут быть сгруппированы под общим обозначением с общим владельцем. Например, вы можете сгруппировать все модели, принадлежащие определенной команде, или связанные с моделированием конкретного источника данных (github
).
Зачем определять группы
моделей? Есть две причины:
- Это превращает неявные отношения в явную группировку с определенным владельцем. Размышляя о границах интерфейсов между группами, вы можете создать более чистый (менее запутанный) DAG. В будущем эти границы интерфейсов могут быть подходящими в качестве интерфейсов между отдельными проектами.
- Это позволяет вам обозначить определенные модели как имеющие "приватный" доступ — для использ ования исключительно в этой группе. Другие модели будут ограничены в возможности ссылаться (зависеть) на эти модели. В будущем они не будут видны другим командам, зависящим от вашего проекта — только "публичные" модели будут.
Если вы следуете нашим лучшим практикам по структуре проекта dbt, вы, вероятно, уже используете подкаталоги для организации вашего проекта dbt. Легко применить метку group
ко всему подкаталогу сразу:
models:
my_project_name:
marts:
customers:
+group: customer_success
finance:
+group: finance
Каждая модель может принадлежать только одной группе
, и группы не могут быть вложенными. Если вы установите другую группу
в YAML этой модели или в конфигурации файла, она переопределит группу
, примененную на уровне проекта.
Модификаторы доступа
Некоторые модели являются деталями реализации, предназначенными только для использования в их группе связанных моделей. Другие модели должны быть доступны через функцию ref между группами и проектами. Модели могут установить модификатор доступа, чтобы указать предполагаемый уровень доступности.
Доступ | Доступен для ссылок |
---|---|
private | Та же группа |
protected | Тот же проект (или установлен как пакет) |
public |