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

О проектах dbt

Проект dbt информирует dbt о контексте вашего проекта и о том, как трансформировать ваши данные (создавать наборы данных). По замыслу, dbt обеспечивает верхнеуровневую структуру проекта dbt, такую как файл dbt_project.yml, директорию models, директорию snapshots и так далее. В пределах верхнеуровневых директорий вы можете организовать свой проект любым способом, который соответствует потребностям вашей организации и конвейера данных.

Минимально, все, что нужно проекту, это файл конфигурации проекта dbt_project.yml. dbt поддерживает ряд различных ресурсов, поэтому проект может также включать:

РесурсОписание
modelsКаждая модель хранится в одном файле и содержит логику, которая либо преобразует сырые данные в набор данных, готовый для аналитики, либо, что встречается чаще, является промежуточным шагом такого преобразования.
snapshotsСпособ зафиксировать состояние изменяемых таблиц, чтобы к нему можно было обратиться позже.
seedsCSV-файлы со статическими данными, которые можно загрузить в вашу платформу данных с помощью dbt.
data testsSQL-запросы, которые вы можете писать для тестирования моделей и ресурсов в вашем проекте.
macrosБлоки кода, которые можно переиспользовать многократно.
docsДокументация для вашего проекта, которую вы можете сгенерировать.
sourcesСпособ именовать и описывать данные, загружаемые в ваше хранилище инструментами Extract и Load.
exposuresСпособ определить и описать downstream-использование вашего проекта.
metricsСпособ определить метрики для вашего проекта.
groupsGroups позволяют совместно организовывать узлы в ограниченных коллекциях.
analysisСпособ организовать аналитические SQL-запросы в вашем проекте, например главный бухгалтерский журнал (general ledger) из QuickBooks.
semantic modelsSemantic models определяют базовые отношения данных в MetricFlow и Semantic Layer, позволяя запрашивать метрики с использованием семантического графа.
saved queriesSaved queries упорядочивают переиспользуемые запросы, объединяя метрики, измерения и фильтры в узлы, видимые в dbt DAG.
user-defined functionsПользовательские функции (UDFs) позволяют создавать переиспользуемые кастомные функции в вашем хранилище, которыми можно делиться между dbt, BI-инструментами, workflow для data science и другими системами.
Loading table...

При создании структуры вашего проекта вы должны учитывать следующие аспекты, влияющие на рабочий процесс вашей организации:

  • Как люди будут запускать команды dbt — выбор подходящего пути
  • Как люди будут перемещаться внутри проекта — будь то разработчики в Studio IDE или стейкхолдеры, работающие с документацией
  • Как люди будут настраивать модели — некоторые массовые настройки проще выполнять на уровне директорий, чтобы людям не приходилось помнить о необходимости указывать всё в блоке config для каждой новой модели

Конфигурация проекта

Каждый проект dbt включает файл конфигурации проекта под названием dbt_project.yml. Он определяет директорию проекта dbt и другие конфигурации проекта.

Редактируйте dbt_project.yml, чтобы настроить общие конфигурации проекта, такие как:

YAML ключОписание значения
nameИмя вашего проекта в формате snake case
versionВерсия вашего проекта
require-dbt-versionОграничивает использование проекта только указанным диапазоном версий dbt Core
profileПрофиль, который dbt использует для подключения к вашей платформе данных
model-pathsКаталоги, в которых находятся ваши файлы моделей и источников
seed-pathsКаталоги, в которых находятся ваши seed-файлы
test-pathsКаталоги, в которых находятся ваши тестовые файлы
analysis-pathsКаталоги, в которых находятся ваши файлы анализов
macro-pathsКаталоги, в которых находятся ваши макросы
snapshot-pathsКаталоги, в которых находятся ваши снапшоты
docs-pathsКаталоги, в которых находятся ваши doc-блоки
varsПеременные проекта, которые вы хотите использовать при компиляции данных
Loading table...

Для получения полной информации о конфигурациях проекта, смотрите dbt_project.yml.

Поддиректории проекта

Вы можете использовать опцию Project subdirectory в dbt, чтобы указать подкаталог в вашем git‑репозитории, который dbt должен использовать в качестве корневого каталога проекта. Это удобно, если в одном репозитории у вас находится несколько dbt‑проектов или если вы хотите организовать файлы dbt‑проекта по подкаталогам для более удобного управления.

Чтобы использовать опцию Project subdirectory в dbt, выполните следующие шаги:

  1. Нажмите на имя вашей учетной записи в левом нижнем углу и выберите Your profile.

  2. В разделе Проекты выберите проект, который вы хотите настроить как поддиректорию проекта.

  3. Выберите Редактировать в нижнем правом углу страницы.

  4. В поле Project subdirectory укажите имя подкаталога. Например, если YAML‑файлы вашего проекта находятся в подкаталоге <repository>/finance, необходимо указать finance в качестве подкаталога.

    • Вы также можете указывать вложенные подкаталоги. Например, если YAML‑файлы вашего проекта находятся в <repository>/teams/finance, в поле подкаталога следует указать teams/finance. Примечание: в поле Project subdirectory не требуется указывать начальный или конечный символ /.
  5. Нажмите Сохранить, когда закончите.

После настройки опции Project subdirectory, dbt будет использовать её как корневой каталог вашего dbt‑проекта. Это означает, что команды dbt, такие как dbt run или dbt test, будут выполняться над файлами внутри указанного подкаталога. Если в подкаталоге Project отсутствует файл dbt_project.yml, вам будет предложено инициализировать dbt‑проект.

Поддержка проекта в планах dbt

Некоторые планы поддерживают только один dbt‑проект, тогда как планы уровня Enterprise позволяют работать с несколькими проектами и использовать межпроектные ссылки с помощью Mesh.

Новые проекты

Вы можете создавать новые проекты и делиться ими с другими людьми, размещая их в хостируемом git‑репозитории, таком как GitHub, GitLab или BitBucket.

После того как вы настроите подключение к вашей платформе данных, вы можете инициализировать новый проект в dbt и начать разработку. Либо выполните команду dbt init из командной строки, чтобы настроить новый проект.

Во время инициализации проекта dbt создает примерные файлы моделей в вашей директории проекта, чтобы помочь вам быстро начать разработку.

Примерные проекты

Если вы хотите более подробно изучить проекты dbt, вы можете клонировать Jaffle shop от dbt Lab на GitHub. Это исполняемый проект, который содержит примерные конфигурации и полезные заметки.

Если вы хотите увидеть, как выглядит зрелый, производственный проект, ознакомьтесь с публичным репозиторием команды данных GitLab.

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

0
Loading