Skip to content

silvermete0r/SDU_Hackathon_USS_DB_Analysis

Repository files navigation

SDU Hackathon: Unified Star Scheme (USS) [Analysis]

🛠️ Tools: PostgreSQL (DBMS), Python (Data Engineering)

💽 Dataset: dataset-open

💬 Data Description: datadescription-open

uss-scheme-img-1

1) Что такое USS и в чем заключается его основное преимущество по сравнению с традиционными звездной и снежинкой схемами?

Unified Star Schema (USS) - это методология проектирования схемы данных для аналитических систем. Она объединяет данные из различных источников в одну звездную схему, устраняя несогласованности и дублирование.

Авторы: Инмон Б., Пуппини Ф. Книга: The Unified Star Schema

Критерий USS Снежинка Звезда
Структура Одна звездная схема, объединяющая данные из разных источников Множество нормализованных таблиц Одна фактовая таблица, окруженная измерениями
Производительность запросов Высокая Низкая (из-за необходимости объединения таблиц) Высокая
Дублирование данных Минимальное Может быть высоким из-за нормализации Минимальное
Количество таблиц Меньше Больше Среднее
Изменение структуры данных Сложное Простое Среднее
Поддержка исторических данных Да Да Ограниченная (часто требует дополнительных таблиц)
Использование в аналитике Оптимальное Неэффективное из-за сложности запросов Оптимальное

№1. Задача:

Постройте USS структуру для анализа продаж и определения самых популярных продуктов в разных магазинах. Включите таблицы для фактов продаж и измерений продуктов, магазинов и времени.

Решение задачи: Task-1-Solution

Screenshot:

task-1

Решение для настройки базы данных: store_db[DB Creation].sql + data_engineering - preprocessing + data_fill_csv_sql

Схема:

scheme-1

ERD-Схема:

erd-scheme-1

 

2) Какой подход к моделированию связей сущностей в USS структуре может использоваться для обеспечения гибкости и простоты масштабирования?

В USS для гибкости и масштабирования рекомендуется использовать "унифицированные ключи". Это подход, при котором каждой сущности присваивается уникальный и постоянный идентификатор системы. Это способствует гибкости и облегчает масштабирование системы при увеличении объема данных и источников.

uss-scheme-img-2

№2. Задача:

Создайте USS структуру для анализа активности клиентов и определения их предпочтений в разных магазинах. Включите таблицы для фактов заказов и измерений клиентов, магазинов и времени.

Решение: Task-2-Solution

Screenshots:

task-2-1 task-2-2 task-2-3 task-2-4

 

3) Как USS таблицы могут быть использованы для оптимизации выполнения сложных аналитических запросов?

Звездная схема: Использлование звездной схемы в USS облегчает агрегирование данных и ускоряет выполнение групповых функций, как AVG, SUM, COUNT для сложных аналитических запросов.

🔑 Унифицированные ключи: Уникальные идентификаторы для сущностей облегчают объединение данных из разных источников, уменьшая необходимость дополнительных операций соединения таблиц.

📋 Минимизация дублирования: USS устраняет дублирование данных, что сокращает объем обработки и оптимизирует производительность запросов.

🆔 Индексы: Возможность создания оптимальных индексов на унифицированных ключах улучшает скорость выполнения запросов, особенно при больших объемах данных.

🔗 Предварительное объединение данных: USS позволяет предварительно объединять данные из различных источников, что уменьшает время выполнения запросов, так как предобработка уже выполнена.

Удобство добавления данных: USS упрощает процесс добавления новых данных, что облегчает масштабирование системы при увеличении объема данных и источников.

№3. Задача:

Постройте USS структуру для анализа эффективности маркетинговых акций в различных магазинах. Включите таблицы для фактов заказов и измерений магазинов, продуктов, клиентов и времени.

Решение: Task-3-Solution

Screenshot:

task-3

 

4) Какие инструменты или программное обеспечение можно использовать для работы с USS структурами и выполнения аналитических запросов?

🐘 PostgreSQL: Мощная система управления базами данных (СУБД) с поддержкой звездных схем и унифицированных ключей (Использовалось на практике для решение данного кейса "Моделирование данных").

📊 Microsoft Power BI: Еще один мощный инструмент для визуализации данных и работы с USS структурами.

📈 Tableau: Визуализационный инструмент, поддерживающий USS структуры и облегчающий создание интерактивных отчетов.

Apache Spark: Распределенный фреймворк для обработки больших объемов данных и выполнения сложных аналитических запросов.

🐝 Apache Hive: Система управления данными на основе Hadoop, позволяющая использовать USS для аналитики.

№4. Задача:

Создайте USS структуру для анализа покупательского поведения и предсказания спроса на определенные продукты в разных магазинах. Включите таблицы для фактов заказов и измерений продуктов, клиентов, магазинов и времени.

Решение: Task-4-Solution

Screenshots:

task-4-1 task-4-2 task-4-3 task-4-4 task-4-5

 

5) Какую роль играют факты и измерения в USS структуре, и как это помогает анализировать данные?

В USS структуре факты представляют числовые данные, которые измеряются и агрегируются, а измерения описывают контекст или характеристики фактов. Их сочетание позволяет анализировать данные в различных срезах и уровнях детализации, обеспечивая гибкость и простоту в аналитике.

№5. Задача:

Напишите SQL запрос для получения общего количества продаж за каждый месяц в указанном периоде.

Решение: Task-5-Solution

Screenshot:

task-5

 

6) Как можно масштабировать USS структуру для обработки больших объемов данных и поддержания производительности?

Для масштабирования USS структуры при обработке больших объемов данных и поддержания производительности можно использовать горизонтальное масштабирование с помощью репликации или шардинга. Также можно оптимизировать индексы и настройки базы данных для улучшения производительности запросов.

horizontal-scaling-img

№6. Задача:

Напишите SQL запрос для получения самых популярных продуктов по количеству заказов.

Решение: Task-6-Solution

Screenshot:

task-6

№7. Задача:

Напишите SQL запрос для получения среднего чека заказов в каждом магазине.

Решение: Task-7-Solution

Screenshot:

task-7

№8. Задача:

Выясните топ-5 продуктов с наибольшим объемом продаж за последние три месяца и определите, какие клиенты совершили эти покупки.

Решение: Task-8-Solution

Screenshot:

task-8

🔎 Анализ таблицы заказов [ML/DS]: Визуализация общих данных и построение модели машинного обучения для предсказания продаж

Решение [source code]: Orders-Analysis-DS-ML

ML Model(Для предсказания примерного количества продаж): forecast-model.pkl

Общее количество продаж по месяцам:

stats-1

Сегментация клиентов и количества покупок:

stats-2

Анализ продуктов:

stats-3

Анализ магазинов:

stats-4

Сезоннный анализ продаж:

stats-5

 

License

MIT-License

 

Contact

Linkedin

🧐 Author: Arman Zhalgasbayev - @grembim

📬 Email: [email protected]

📦 Project Link (Github Repository): https://github.com/silvermete0r/SDU_Hackathon_USS_DB_Analysis

 

Acknowledgements

About

Smart Data Ukimet Hackathon - "Data Modeling" case Solution - Topic: Store Analysis based on Unified Star Schema

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors