Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
302 changes: 300 additions & 2 deletions DE-101 Modules/Module02/DE - 101 Lab 2.1/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,310 @@ DE-101/Module2/
И сохраняйте там результат.
```

## Установка БД
## Установка БД (Windows)
# Установка Postgres
1. Ищем в браузере "postgres download"

## Загрузка данных в БД
![image](https://github.com/NikTomski/data-engineering/assets/142725457/48ed4f91-91a3-471a-8932-a2e9dbbb6ff8)

2. Находим ссылку на официальный сайт postgres, заходим на него (https://www.postgresql.org/download/)

![image](https://github.com/NikTomski/data-engineering/assets/142725457/db2f9f96-2759-4eaf-ac7b-565946396e6c)

3. Выбираем Windows для установки postgres

![image](https://github.com/NikTomski/data-engineering/assets/142725457/8d0b5d2e-11ee-4bac-b670-a37727854185)

4. Нажимаем на ссылку с установщиком (installer) postgres

![image](https://github.com/NikTomski/data-engineering/assets/142725457/48e1a910-e3f3-4883-8d4a-bb4f0cb01ad0)

5. Нажиамем на ссылку установщика postgres на Windows, начнется скачивание установщика postgres

![image](https://github.com/NikTomski/data-engineering/assets/142725457/878d110d-ea26-41d7-acd8-c7f5a511ece5)

6. Нажимаем на установщик, откроется приложение с установкой postgres

![image](https://github.com/NikTomski/data-engineering/assets/142725457/d06d55d0-0a78-4a23-8a31-9f3f1bb0af98)

7. Нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a4234e05-e8e7-485c-a837-a63ce5500888)

8. Оставляем путь установки или меняем на свое усмотрение, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/ddd3e228-2196-46cd-9dbd-39eca5a180a0)

9. Ставим все галочки, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/59185ded-e063-48b0-9822-77ed8ffe8e97)

10. Оставляем путь установки или меняем на свое усмотрение, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/747430ca-c99f-4243-a4bb-35593ffc0172)

11. Нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a212dfd9-f93c-4dc3-9e81-e7982af3330d)

12. Нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/82eb4d29-9a2d-40fa-b963-9cca23bca0d7)

13. Нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/18eb36b4-2a2c-47a5-8db4-591ffd902c19)

14. После установки отжимаем галочку на "Stack Builder", нажимаем "Finish"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/bd661ba5-927c-4636-a71e-8bb42dc054c5)

# Установка DBeaver
1. Ищем в браузере "dbeaver download"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a40ed8b4-dc1f-43e1-8a49-ec757f709314)

2. Находим ссылку на официальный сайт DBeaver, заходим на него (https://dbeaver.io/download/)

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a55cacfa-4782-4069-9870-5b4d1446a16a)

3. Нажимаем на ссылку с установщиком (installer) dbeaver, начнется скачивание установщика DBeaver

![image](https://github.com/NikTomski/data-engineering/assets/142725457/7d7f8a88-a29e-4603-a718-bcf5a4c81546)

4. На уведомление нажимаем "Запустить"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/4591cbbb-73da-42ce-9cc0-f784d9f4a9ae)

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

![image](https://github.com/NikTomski/data-engineering/assets/142725457/27939980-2008-42e1-bf71-c7441f4c16ad)

6. Откроется установщик DBeaver, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/42328765-a161-4b2c-9e22-0a46ef6ca449)

7. Нажимаем "I Agree"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/225e1e11-7265-43a7-9711-bc4107390512)

8. Выбираем для кого устанавливать DBeaver, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a4029daa-91fc-4443-9a21-91e33de9ccf7)

9. К отмеченным галочкам добавляем галочку на "Associate .SQL files", нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/1717a0f5-0331-4a42-9a43-b477056bf132)

10. Оставляем путь установки или меняем на свое усмотрение, нажимаем "Next"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/fcd10c71-44ab-42e1-8762-f7b6200d0989)

11. Нажимаем "Install"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/209379d5-c604-42d7-9dfe-a9ca05fde589)

12. После установки DBeaver можно поставить галочку на "Create Desktop Shortcut" для создания ярлыка на Рабочем столе, нажимаем "Finsh"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/8884729e-2c6b-4312-aac2-2e78d7417d2e)

## Загрузка данных в БД (Windows, DBeaver, Postgres)

1. Запускаем DBeaver

![image](https://github.com/NikTomski/data-engineering/assets/142725457/0ba4b5b4-58ec-4c45-b402-18e942d5ceb3)

2. Нажимаем на иконку вилки с плюсом

![image](https://github.com/NikTomski/data-engineering/assets/142725457/8aea74ef-406b-4d01-80e5-bc9c1fcf2e75)

3. В открывшемся окне выбираем postrgres

![image](https://github.com/NikTomski/data-engineering/assets/142725457/336871ca-74de-450a-8efc-9abf72a998af)

4. Вводим пароль, указанный при установке postgress в поле Password, можно проверить подключение, нажав на кнопку "Test Connection...".
Если все в порядке, то нажимаем кнопку "Finish"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/129cb0f0-8b2b-4728-bd77-2ffd0ea54ebd)

5. Раскрываем список с БД

![image](https://github.com/NikTomski/data-engineering/assets/142725457/0b289e2a-7791-4d05-b660-5a4fb6e6e52d)

6. Нажимаем на кнопку "SQL", чтобы создался файл скрипта для запросов

![image](https://github.com/NikTomski/data-engineering/assets/142725457/8106e541-c7c0-47d3-929d-151fc9333d55)

7. Нажимаем кнопку "File", выбираем "Open File..."

![image](https://github.com/NikTomski/data-engineering/assets/142725457/5aa8f77c-cc02-44db-866c-a74e54126f55)

8. Ищем и выбираем файлы БД (orders.sql, people.sql, returns.sql), нажимаем "Открыть"

![image](https://github.com/NikTomski/data-engineering/assets/142725457/94236d44-55fe-4ae2-8ecc-d39e128cd825)

9. Из файла orders.sql копируем код скрипта в наш ранее созданный файл скрипта и нажимаем кнопку с изображением листа и стрелки (Execute SQL script).
Дожидаемся создания таблицы Orders

![image](https://github.com/NikTomski/data-engineering/assets/142725457/32c5e38f-2a2d-4143-be00-0107de09c1ff)

10. Из файла people.sql копируем код скрипта в наш ранее созданный файл скрипта и нажимаем кнопку с изображением листа и стрелки (Execute SQL script).
Дожидаемся создания таблицы People

![image](https://github.com/NikTomski/data-engineering/assets/142725457/c7dcd518-60f7-4e93-8df3-2182c9dd716a)

11. В файле returns.sql нужно заменить атрибуты Person и Region на Returned и Order_Id соответственно и заменить их типы:
1) Выделяем слово Person и нажимаем сочетание клавиш Ctrl + F

![image](https://github.com/NikTomski/data-engineering/assets/142725457/03582ab3-ac5e-4bbf-acfe-0b297da13c9c)

2) В открывшемся окне в поле "Replace with:" пишем Returned, нажимаем на кнопку "Replace All", смотрим, чтобы заменились все значения

![image](https://github.com/NikTomski/data-engineering/assets/142725457/e8a572ff-ca41-48ae-93b6-d8a865e6cffc)

![image](https://github.com/NikTomski/data-engineering/assets/142725457/47ce3b08-3a51-4801-9ed7-fdd6cc9920d5)

2.1) Повторяем шаг 2 соответственнно со словами Region и Order_Id

![image](https://github.com/NikTomski/data-engineering/assets/142725457/3de42f25-8f3c-4aac-8c89-b29ad1878795)

![image](https://github.com/NikTomski/data-engineering/assets/142725457/e5864e93-d299-4cdf-bc90-f61b6caa7c37)

3) Заменяем число символов в типе данных у Returned c 17 на 3, убираем PRIMARY KEY

![image](https://github.com/NikTomski/data-engineering/assets/142725457/69edf4b3-bba8-4193-bf23-93de6b1a15e7)

4) Заменяем число символов в типе данных у Order_Id с 7 на 14

![image](https://github.com/NikTomski/data-engineering/assets/142725457/94304e92-d3d1-42e9-b38a-3782854ef76a)

12. Из файла returns.sql копируем код скрипта в наш ранее созданный файл скрипта и нажимаем кнопку с изображением листа и стрелки (Execute SQL script).
Дожидаемся создания таблицы Returns

![image](https://github.com/NikTomski/data-engineering/assets/142725457/02336800-dc56-477a-8d9b-e0fec4648a4c)

13. Чтобы увидеть созданные таблицы, нужно нажать ПКМ по БД и выбрать "Обновить", а затем раскрыть список до папки Tables

![image](https://github.com/NikTomski/data-engineering/assets/142725457/bb157cc7-6e46-4018-8621-aa35ff61a618)

![image](https://github.com/NikTomski/data-engineering/assets/142725457/42a8eeb7-38bf-4fa6-8d30-9032791615ff)

## SQL запросы

1. Overview (обзор ключевых метрик)
- Total Sales

```
SELECT SUM(sales) AS "Total Sales"
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/8519b529-1ae6-4ae2-840b-8c208ab1cfe1)

- Total Profit

```
SELECT SUM(profit) AS "Total Profit"
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/7b76610e-2256-477a-bbc5-bb3e94c401d5)

- Profit Ratio

```
SELECT profit/sales*100 AS "Profit Ratio"
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a6edf603-433d-419d-bb8d-bb9bc5631d22)

- Profit per Order

```
SELECT order_id, profit
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/571e6f59-82fc-4c02-a6f3-0e306f9a3591)

- Sales per Customer

```
SELECT customer_id, sales
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/7bb24b86-ef85-4778-a716-51748154bc4e)

- Avg. Discount

```
SELECT AVG(discount)*100 as "Average Discount"
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/149d6c82-523e-4944-9185-7077c862527c)

- Monthly Sales by Segment

```
SELECT EXTRACT(month from order_date) as month, segment, sales
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/09dc514d-389b-4587-916a-f2338801c118)

- Monthly Sales by Product Category

```
SELECT EXTRACT(month from order_date) as month, category, sales
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/97b4c68c-adc6-4d50-be97-786e03857216)

2. Product Dashboard (Продуктовые метрики)
- Sales by Product Category over time (Продажи по категориям)

```
SELECT category, SUM(sales)
FROM orders
GROUP BY category
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/7d486edc-ed21-4b8d-a321-fd4f4ff7b38f)

3. Customer Analysis
- Sales and Profit by Customer

```
SELECT customer_id, sales, profit
FROM orders
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/5adb3022-29be-439a-908f-31f3b52bcfc8)

- Customer Ranking

```
SELECT customer_id, sales, profit
FROM orders
ORDER BY profit DESC, sales DESC
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/7c1eaa7a-e44e-40f0-a39e-edb73315f9ea)

- Sales per region

```
SELECT region, SUM(sales)
FROM orders
GROUP BY region
```

![image](https://github.com/NikTomski/data-engineering/assets/142725457/a7ad65d7-ccaa-4f8f-a557-6a4dbf86010e)

## Нарисовать модель данных в SQLdbm

## Нарисовать графики в Google Sheets
Expand Down
Loading