Клонирование примера проекта Jaffle Shop
Что такое Jaffle Shop?
Jaffle Shop — эталонный пример проекта dbt от dbt Labs для вымышленного кафе. В этом руководстве показано, как клонировать проект из GitHub или GitLab с помощью Git.
При клонировании на ваш компьютер загружаются файлы проекта dbt: модели, seed-файлы, тесты и конфигурация. При этом dbt не устанавливается и база данных не настраивается. Если вам нужны только файлы проекта, следуйте инструкциям в разделах Клонирование репозитория и Проверка клонирования.
Для выполнения команд dbt, таких как dbt seed, dbt run и dbt test, также необходимо установить dbt и подключиться к базе данных. Ссылки на руководства по быстрому старту для хранилищ данных приведены в разделе Дальнейшие шаги.
Связанные материалы
Предварительные требования
- Установленный Git
- Терминал
- Учетная запись GitHub или GitLab (только если вы планируете создать форк репозитория, отправлять изменения или клонировать закрытый репозиторий)
Убедитесь, что Git установлен:
git --version
Клонирование репозитория
- GitHub
- GitLab
- Другие платформы
-
Откройте терминал и перейдите в каталог, в котором вы храните проекты:
cd ~/Documents/Github -
Клонируйте репозиторий:
git clone https://github.com/dbt-labs/jaffle-shop.git -
Перейдите в каталог проекта:
cd jaffle-shop
Если ваша организация размещает Jaffle Shop в GitLab или вы создали там форк репозитория, используйте для клонирования свой URL в GitLab:
-
Откройте терминал и перейдите в каталог, в котором вы храните проекты:
cd ~/Documents/Github -
Клонируйте репозиторий (замените
YOUR_USERNAMEна свое имя пользователя или название группы в GitLab):git clone https://gitlab.com/YOUR_USERNAME/jaffle-shop.git -
Перейдите в каталог проекта:
cd jaffle-shop
Если ваша организация создала зеркало или форк Jaffle Shop в Bitbucket, Azure DevOps или на другой платформе для размещения Git-репозиториев, используйте URL для клонирования с этой платформы. Команда git clone работает точно так же:
-
Откройте терминал и перейдите в каталог, в котором вы храните проекты:
cd ~/Documents/Github -
Клонируйте репозиторий:
git clone <your-repo-clone-url> -
Перейдите в каталог проекта:
cd jaffle-shop
Проверка клонирования
Убедитесь, что файлы проекта на месте:
ls
Среди файлов и папок должны быть:
dbt_project.ymlmodels/seeds/packages.yml
Клонирование завершено! 🎉 Теперь файлы проекта Jaffle Shop находятся на вашем компьютере.
Изучение структуры проекта
Прежде чем устанавливать dbt или подключать базу данных, кратко ознакомьтесь с содержимым клонированного проекта. Jaffle Shop — вымышленное кафе. Проект содержит 13 моделей, которые преобразуют данные кафе о клиентах, заведениях (точках продаж), продуктах, расходных материалах и заказах.
В проект также входят:
- Seed-файлы: шесть CSV-файлов в
seeds/jaffle-data/, содержащих исходные данные для примера. - Тесты данных и модульные тесты: YAML-файлы рядом с моделями, содержащие проверки уникальности, отсутствия значений null и несколько сценариев модульного тестирования.
- Макросы: небольшие вспомогательные макросы в
macros/. - Пакеты: зависимости, перечисленные в
packages.yml(их можно установить позже с помощьюdbt deps).
Упрощенная структура проекта выглядит так:
jaffle-shop/
├── dbt_project.yml
├── packages.yml
├── models/
│ ├── staging/ # Clean and rename raw tables
│ │ ├── stg_customers.sql
│ │ ├── stg_orders.sql
│ │ ├── stg_order_items.sql
│ │ ├── stg_products.sql
│ │ ├── stg_locations.sql
│ │ ├── stg_supplies.sql
│ │ └── __sources.yml
│ └── marts/ # Business-ready tables for the cafe
│ ├── customers.sql
│ ├── orders.sql
│ ├── order_items.sql
│ ├── products.sql
│ ├── locations.sql
│ ├── supplies.sql
│ └── metricflow_time_spine.sql
├── seeds/
│ └── jaffle-data/ # Sample CSV data (customers, orders, and more)
├── macros/
├── analyses/
└── data-tests/
Модели слоя staging ближе всего к исходным данным из seed-файлов. Модели слоя marts объединяют и преобразуют эти данные в таблицы, используемые для анализа. Пока не обязательно читать каждый файл. Такая структура соответствует стандартному шаблону проекта dbt, который встречается во многих реальных проектах.
Дальнейшие шаги
Для запуска проекта или работы над ним необходимо установить dbt и настроить подключение к базе данных. Вам могут пригодиться следующие ссылки:
- Установка dbt в собственной среде: при клонировании dbt не устанавливается. Он необходим для выполнения команд.
- Настройка виртуального окружения: позволяет изолировать dbt от других Python-проектов на вашем компьютере.
- О команде dbt deps: пакеты проекта перечислены в
packages.yml. После установки dbt выполнитеdbt deps. - О проектах dbt: изучите структуру проекта, прежде чем редактировать модели.
- dbt Learn: интерактивные курсы для новых пользователей.
Быстрый старт для хранилищ данных
Для запуска проекта необходимо настроить базу данных и адаптер в profiles.yml. Выберите руководство по быстрому старту для своего хранилища данных или локальной среды:
- Быстрый старт с dbt и Snowflake
- Быстрый старт с dbt и BigQuery
- Быстрый старт с dbt и Databricks
- Быстрый старт с dbt и Redshift
- Быстрый старт с dbt v1 и DuckDB: клонируйте
jaffle_shop_duckdbи следуйте руководству.
Вы также можете просмотреть все руководства или другие примеры проектов dbt.
Удаление проекта (необязательно)
Если вы клонировали репозиторий только для проверки этих шагов и проект вам больше не нужен, можно удалить папку:
rm -rf ~/Documents/Github/jaffle-shop
Эта команда удаляет клонированный проект с вашего компьютера. Она не затрагивает репозиторий в GitHub или GitLab.