Пакеты
Программисты часто модульно организуют код в библиотеки. Эти библиотеки помогают программистам работать более эффективно: они могут тратить больше времени на уникальную бизнес-логику и меньше времени на реализацию кода, который кто-то другой уже довел до совершенства.
В dbt такие библиотеки называются пакетами. Пакеты dbt настолько мощные, потому что многие аналитические проблемы, с которыми мы сталкиваемся, общие для разных организаций, например:
- преобразование данных из структурированного SaaS-набора данных, например:
- преобразование просмотров страниц Snowplow или Segment в сессии
- преобразование данных о расходах AdWords или Facebook Ads в единый формат.
- написание макросов dbt, выполняющих аналогичные функции, например:
- генерация SQL для объединения двух отношений, поворота столбцов или создания
- создание пользовательских тестов схем
- написание аудиторских запросов
- создание моделей и макросов для конкретного инструмента, используемого в вашем стеке данных, например:
Пакеты dbt на самом деле являются автономными проектами dbt, с моделями, макросами и другими ресурсами, которые решают конкретную проблему. Как пользователь dbt, добавляя пакет в свой проект, все ресурсы пакета станут частью вашего собственного проекта. Это означает:
- Модели в пакете будут материализованы, когда вы выполните
dbt run
. - Вы можете использовать
ref
в своих моделях для ссылки на модели из пакета. - Вы можете использовать
source
для сс ылки на источники в пакете. - Вы можете использовать макросы из пакета в своем собственном проекте.
- Важно отметить, что определение и установка пакетов dbt отличается от определения и установки пакетов Python.
Примеры использования
Следующая настройка будет работать для каждого проекта dbt:
- Добавьте любые зависимости пакетов в
packages.yml
- Добавьте любые зависимости проекта в
dependencies.yml
Однако, вы можете объединить оба файла в один dependencies.yml
. Прочтите следующий раздел, чтобы узнать больше.