# Клонирование примера проекта Jaffle Shop

[Назад к гайдам](https://docs.getdbt.tech/guides.md)

[Menu ]()



## Что такое Jaffle Shop?

[Jaffle Shop](https://github.com/dbt-labs/jaffle-shop) — эталонный пример проекта dbt от dbt Labs для вымышленного кафе. В этом руководстве показано, как клонировать проект из GitHub или GitLab с помощью Git.

При клонировании на ваш компьютер загружаются файлы проекта dbt: модели, seed-файлы, тесты и конфигурация. При этом dbt не устанавливается и база данных не настраивается. Если вам нужны только файлы проекта, следуйте инструкциям в разделах [Клонирование репозитория](#clone-the-repository) и [Проверка клонирования](#verify-the-clone).

Для выполнения команд dbt, таких как `dbt seed`, `dbt run` и `dbt test`, также необходимо установить dbt и подключиться к базе данных. Ссылки на руководства по быстрому старту для хранилищ данных приведены в разделе [Дальнейшие шаги](#next-steps).

### Связанные материалы

* [Установка dbt v1](https://docs.getdbt.tech/docs/local/install-dbt.md)
* [О проектах dbt](https://docs.getdbt.tech/docs/build/projects.md)
* [Примеры проектов dbt](https://docs.getdbt.tech/faqs/Project/example-projects.md)

## Предварительные требования

* Установленный [Git](https://git-scm.com/downloads)
* Терминал
* Учетная запись [GitHub](https://github.com/join) или [GitLab](https://gitlab.com/users/sign_up) (только если вы планируете создать форк репозитория, отправлять изменения или клонировать закрытый репозиторий)

Убедитесь, что Git установлен:

```bash
git --version
```

## Клонирование репозитория

### GitHub

1. Откройте терминал и перейдите в каталог, в котором вы храните проекты:

   ```bash
   cd ~/Documents/Github
   ```

2. Клонируйте репозиторий:

   ```bash
   git clone https://github.com/dbt-labs/jaffle-shop.git
   ```

3. Перейдите в каталог проекта:

   ```bash
   cd jaffle-shop
   ```

### GitLab

Если ваша организация размещает Jaffle Shop в GitLab или вы создали там форк репозитория, используйте для клонирования свой URL в GitLab:

1. Откройте терминал и перейдите в каталог, в котором вы храните проекты:

   ```bash
   cd ~/Documents/Github
   ```

2. Клонируйте репозиторий (замените `YOUR_USERNAME` на свое имя пользователя или название группы в GitLab):

   ```bash
   git clone https://gitlab.com/YOUR_USERNAME/jaffle-shop.git
   ```

3. Перейдите в каталог проекта:

   ```bash
   cd jaffle-shop
   ```

### Другие платформы

Если ваша организация создала зеркало или форк Jaffle Shop в Bitbucket, Azure DevOps или на другой платформе для размещения Git-репозиториев, используйте URL для клонирования с этой платформы. Команда `git clone` работает точно так же:

1. Откройте терминал и перейдите в каталог, в котором вы храните проекты:

   ```bash
   cd ~/Documents/Github
   ```

2. Клонируйте репозиторий:

   ```bash
   git clone <your-repo-clone-url>
   ```

3. Перейдите в каталог проекта:

   ```bash
   cd jaffle-shop
   ```

## Проверка клонирования

Убедитесь, что файлы проекта на месте:

```bash
ls
```

Среди файлов и папок должны быть:

* `dbt_project.yml`
* `models/`
* `seeds/`
* `packages.yml`

Клонирование завершено! 🎉 Теперь файлы проекта Jaffle Shop находятся на вашем компьютере.

## Изучение структуры проекта

Прежде чем устанавливать dbt или подключать базу данных, кратко ознакомьтесь с содержимым клонированного проекта. Jaffle Shop — вымышленное кафе. Проект содержит 13 моделей, которые преобразуют данные кафе о клиентах, заведениях (точках продаж), продуктах, расходных материалах и заказах.

В проект также входят:

* **Seed-файлы:** шесть CSV-файлов в `seeds/jaffle-data/`, содержащих исходные данные для примера.
* **Тесты данных и модульные тесты:** YAML-файлы рядом с моделями, содержащие проверки уникальности, отсутствия значений null и несколько сценариев модульного тестирования.
* **Макросы:** небольшие вспомогательные макросы в `macros/`.
* **Пакеты:** зависимости, перечисленные в `packages.yml` (их можно установить позже с помощью `dbt deps`).

Упрощенная структура проекта выглядит так:

```text
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](https://docs.getdbt.tech/docs/build/projects.md), который встречается во многих реальных проектах.

## Дальнейшие шаги

Для запуска проекта или работы над ним необходимо установить dbt и настроить подключение к базе данных. Вам могут пригодиться следующие ссылки:

* **[Установка dbt в собственной среде](https://docs.getdbt.tech/docs/local/install-dbt.md):** при клонировании dbt не устанавливается. Он необходим для выполнения команд.
* **[Настройка виртуального окружения](https://docs.getdbt.tech/docs/local/install-dbt.md):** позволяет изолировать dbt от других Python-проектов на вашем компьютере.
* **[О команде dbt deps](https://docs.getdbt.tech/reference/commands/deps.md):** пакеты проекта перечислены в `packages.yml`. После установки dbt выполните `dbt deps`.
* **[О проектах dbt](https://docs.getdbt.tech/docs/build/projects.md):** изучите структуру проекта, прежде чем редактировать модели.
* **[dbt Learn](https://learn.getdbt.com/):** интерактивные курсы для новых пользователей.

### Быстрый старт для хранилищ данных

Для запуска проекта необходимо настроить базу данных и адаптер в `profiles.yml`. Выберите руководство по быстрому старту для своего хранилища данных или локальной среды:

* [Быстрый старт с dbt и Snowflake](https://docs.getdbt.tech/guides/snowflake.md)
* [Быстрый старт с dbt и BigQuery](https://docs.getdbt.tech/guides/bigquery.md)
* [Быстрый старт с dbt и Databricks](https://docs.getdbt.tech/guides/databricks.md)
* [Быстрый старт с dbt и Redshift](https://docs.getdbt.tech/guides/redshift.md)
* [Быстрый старт с dbt v1 и DuckDB](https://docs.getdbt.tech/guides/duckdb.md): клонируйте [`jaffle_shop_duckdb`](https://github.com/dbt-labs/jaffle_shop_duckdb) и следуйте руководству.

Вы также можете просмотреть [все руководства](https://docs.getdbt.tech/guides.md) или другие [примеры проектов dbt](https://docs.getdbt.tech/faqs/Project/example-projects.md).

## Удаление проекта (необязательно)

Если вы клонировали репозиторий только для проверки этих шагов и проект вам больше не нужен, можно удалить папку:

```bash
rm -rf ~/Documents/Github/jaffle-shop
```

Эта команда удаляет клонированный проект с вашего компьютера. Она не затрагивает репозиторий в GitHub или GitLab.
