HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p><strong>Тема проекта: Сбор и анализ потоковых данных криптовалют.</strong></p>
1 <p><strong>Тема проекта: Сбор и анализ потоковых данных криптовалют.</strong></p>
2 <p><strong>Цель и задачи проекта</strong></p>
2 <p><strong>Цель и задачи проекта</strong></p>
3 <p>Цель проекта: обработать потоковые данные по криптовалютам и создать интерактивный дашборд.</p>
3 <p>Цель проекта: обработать потоковые данные по криптовалютам и создать интерактивный дашборд.</p>
4 <ol><li>Собрать данные по криптовалютам из потока.</li>
4 <ol><li>Собрать данные по криптовалютам из потока.</li>
5 <li>Сохранить данные в хранилище и собрать витрину.</li>
5 <li>Сохранить данные в хранилище и собрать витрину.</li>
6 <li>Визуализировать данные в виде дашборда.</li>
6 <li>Визуализировать данные в виде дашборда.</li>
7 <li>Сделать выводы по выполненному проекту.</li>
7 <li>Сделать выводы по выполненному проекту.</li>
8 </ol><p><strong>Какие технологии использовались</strong></p>
8 </ol><p><strong>Какие технологии использовались</strong></p>
9 <ul><li>Kafka </li>
9 <ul><li>Kafka </li>
10 <li>S3 Minio</li>
10 <li>S3 Minio</li>
11 <li>ClickHouse</li>
11 <li>ClickHouse</li>
12 <li>Docker</li>
12 <li>Docker</li>
13 <li>Parquet</li>
13 <li>Parquet</li>
14 <li>Python</li>
14 <li>Python</li>
15 </ul><p><strong>Kafka</strong></p>
15 </ul><p><strong>Kafka</strong></p>
16 <p><strong>Цель использования:</strong></p>
16 <p><strong>Цель использования:</strong></p>
17 <p>Для реализации асинхронной и надежной передачи потоковых данных с источника</p>
17 <p>Для реализации асинхронной и надежной передачи потоковых данных с источника</p>
18 <p><strong>Почему выбрали:</strong></p>
18 <p><strong>Почему выбрали:</strong></p>
19 <p>Высокая отказоустойчивость и горизонтальная масштабируемость.</p>
19 <p>Высокая отказоустойчивость и горизонтальная масштабируемость.</p>
20 <p>Поддержка множества клиентских библиотек и интеграций.</p>
20 <p>Поддержка множества клиентских библиотек и интеграций.</p>
21 <p>Возможность хранить данные как временное буферное хранилище.</p>
21 <p>Возможность хранить данные как временное буферное хранилище.</p>
22 <p><strong>Впечатления:</strong></p>
22 <p><strong>Впечатления:</strong></p>
23 <p><strong>Плюсы:</strong>Отличная производительность при работе с большими объемами данных, гибкость в топологиях сообщений (topics, partitions, consumer groups).</p>
23 <p><strong>Плюсы:</strong>Отличная производительность при работе с большими объемами данных, гибкость в топологиях сообщений (topics, partitions, consumer groups).</p>
24 <p><strong>Минусы:</strong>Сложности в настройке и мониторинге кластера, особенно без специализированных инструментов. Требует понимания концепций логгирования и партиционирования.</p>
24 <p><strong>Минусы:</strong>Сложности в настройке и мониторинге кластера, особенно без специализированных инструментов. Требует понимания концепций логгирования и партиционирования.</p>
25 <p><strong>S3 MinIO</strong></p>
25 <p><strong>S3 MinIO</strong></p>
26 <p><strong>Цель использования:</strong></p>
26 <p><strong>Цель использования:</strong></p>
27 <p>Для долгосрочного хранения неструктурированных данных (сырые данные).</p>
27 <p>Для долгосрочного хранения неструктурированных данных (сырые данные).</p>
28 <p><strong>Почему выбрали:</strong></p>
28 <p><strong>Почему выбрали:</strong></p>
29 <p>Совместимость с AWS S3 API позволяет легко переносить решения в облако.</p>
29 <p>Совместимость с AWS S3 API позволяет легко переносить решения в облако.</p>
30 <p>Бесплатный и open-source. Простая интеграция с другими компонентами системы.</p>
30 <p>Бесплатный и open-source. Простая интеграция с другими компонентами системы.</p>
31 <p><strong>Впечатления:</strong></p>
31 <p><strong>Впечатления:</strong></p>
32 <p><strong>Плюсы:</strong>Простота развертывания, хорошая документация, поддержка multipart upload, шифрования и т.д.</p>
32 <p><strong>Плюсы:</strong>Простота развертывания, хорошая документация, поддержка multipart upload, шифрования и т.д.</p>
33 <p><strong>Минусы:</strong>Не все функции облачного S3 доступны "из коробки", но для большинства задач хватает.</p>
33 <p><strong>Минусы:</strong>Не все функции облачного S3 доступны "из коробки", но для большинства задач хватает.</p>
34 <p><strong>ClickHouse</strong></p>
34 <p><strong>ClickHouse</strong></p>
35 <p><strong>Цель использования:</strong></p>
35 <p><strong>Цель использования:</strong></p>
36 <p>Для аналитической обработки больших объемов данных в режиме реального времени.</p>
36 <p>Для аналитической обработки больших объемов данных в режиме реального времени.</p>
37 <p><strong>Почему выбрали:</strong></p>
37 <p><strong>Почему выбрали:</strong></p>
38 <p>Очень высокая скорость выполнения аналитических запросов.</p>
38 <p>Очень высокая скорость выполнения аналитических запросов.</p>
39 <p>Поддержка вставки миллионов строк в секунду.</p>
39 <p>Поддержка вставки миллионов строк в секунду.</p>
40 <p>Удобная SQL-совместимая оболочка.</p>
40 <p>Удобная SQL-совместимая оболочка.</p>
41 <p><strong>Впечатления:</strong></p>
41 <p><strong>Впечатления:</strong></p>
42 <p><strong>Плюсы:</strong>Невероятно быстрый движок для OLAP-запросов, особенно если правильно использовать движки таблиц (MergeTree и его вариации).</p>
42 <p><strong>Плюсы:</strong>Невероятно быстрый движок для OLAP-запросов, особенно если правильно использовать движки таблиц (MergeTree и его вариации).</p>
43 <p><strong>Минусы:</strong>Не предназначен для OLTP, некоторые операции обновления/удаления ограничены, может быть сложно настроить безопасность и кластеризацию без опыта.</p>
43 <p><strong>Минусы:</strong>Не предназначен для OLTP, некоторые операции обновления/удаления ограничены, может быть сложно настроить безопасность и кластеризацию без опыта.</p>
44 <p><strong>Docker</strong></p>
44 <p><strong>Docker</strong></p>
45 <p><strong>Цель использования:</strong></p>
45 <p><strong>Цель использования:</strong></p>
46 <p>Для контейнеризации сервисов, упрощения развёртывания и изоляции окружений.</p>
46 <p>Для контейнеризации сервисов, упрощения развёртывания и изоляции окружений.</p>
47 <p><strong>Почему выбрали:</strong></p>
47 <p><strong>Почему выбрали:</strong></p>
48 <p>Позволяет создавать воспроизводимые окружения.</p>
48 <p>Позволяет создавать воспроизводимые окружения.</p>
49 <p>Упрощает запуск и тестирование сервисов локально.</p>
49 <p>Упрощает запуск и тестирование сервисов локально.</p>
50 <p>Облегчает деплой на разных стадиях CI/CD.</p>
50 <p>Облегчает деплой на разных стадиях CI/CD.</p>
51 <p><strong>Впечатления:</strong></p>
51 <p><strong>Впечатления:</strong></p>
52 <p><strong>Плюсы:</strong>Очень удобная система управления образами и контейнерами, активное сообщество, множество готовых образов.</p>
52 <p><strong>Плюсы:</strong>Очень удобная система управления образами и контейнерами, активное сообщество, множество готовых образов.</p>
53 <p><strong>Минусы:</strong>При увеличении числа сервисов начинает нужна оркестрация (например, Kubernetes), а также важно правильно организовать сетевую и дисковую политику.</p>
53 <p><strong>Минусы:</strong>При увеличении числа сервисов начинает нужна оркестрация (например, Kubernetes), а также важно правильно организовать сетевую и дисковую политику.</p>
54 <p><strong>Streamlit</strong></p>
54 <p><strong>Streamlit</strong></p>
55 <p><strong>Цель использования:</strong></p>
55 <p><strong>Цель использования:</strong></p>
56 <p>Разработка интерактивного пользовательского интерфейса для отображения результатов анализа данных и работы ML-моделей.</p>
56 <p>Разработка интерактивного пользовательского интерфейса для отображения результатов анализа данных и работы ML-моделей.</p>
57 <p><strong>Почему выбрали:</strong></p>
57 <p><strong>Почему выбрали:</strong></p>
58 <p>Простота освоения и быстрое создание MVP.</p>
58 <p>Простота освоения и быстрое создание MVP.</p>
59 <p>Интеграция с популярными библиотеками (Pandas, Matplotlib, Plotly, Scikit-learn)</p>
59 <p>Интеграция с популярными библиотеками (Pandas, Matplotlib, Plotly, Scikit-learn)</p>
60 <p>Не требует знания HTML/CSS/JavaScript для создания прототипов.</p>
60 <p>Не требует знания HTML/CSS/JavaScript для создания прототипов.</p>
61 <p><strong>Впечатления:</strong></p>
61 <p><strong>Впечатления:</strong></p>
62 <p><strong>Плюсы:</strong></p>
62 <p><strong>Плюсы:</strong></p>
63 <p>Очень простая и интуитивная API. Отлично подходит для экспериментов и быстрого показа результатов коллегам или заказчику.</p>
63 <p>Очень простая и интуитивная API. Отлично подходит для экспериментов и быстрого показа результатов коллегам или заказчику.</p>
64 <p><strong>Минусы:</strong></p>
64 <p><strong>Минусы:</strong></p>
65 <p>Неподходящий выбор для масштабных, многостраничных или высоконагруженных приложений.</p>
65 <p>Неподходящий выбор для масштабных, многостраничных или высоконагруженных приложений.</p>
66 <p><strong>Parquet</strong></p>
66 <p><strong>Parquet</strong></p>
67 <p><strong>Цель использования:</strong></p>
67 <p><strong>Цель использования:</strong></p>
68 <p>Хранение больших объёмов структурированных данных.</p>
68 <p>Хранение больших объёмов структурированных данных.</p>
69 <p><strong>Почему выбрали:</strong></p>
69 <p><strong>Почему выбрали:</strong></p>
70 <p>Поддерживает сжатие и кодирование, что уменьшает размер хранимых данных.</p>
70 <p>Поддерживает сжатие и кодирование, что уменьшает размер хранимых данных.</p>
71 <p>Хорошо интегрируется с такими инструментами, как Pandas, ClickHouse, S3 и другими.</p>
71 <p>Хорошо интегрируется с такими инструментами, как Pandas, ClickHouse, S3 и другими.</p>
72 <p>Позволяет сохранять схему данных вместе с самими данными.</p>
72 <p>Позволяет сохранять схему данных вместе с самими данными.</p>
73 <p><strong>Впечатления:</strong></p>
73 <p><strong>Впечатления:</strong></p>
74 <p><strong>Плюсы:</strong></p>
74 <p><strong>Плюсы:</strong></p>
75 <p>Отличная производительность при чтении подмножества полей.</p>
75 <p>Отличная производительность при чтении подмножества полей.</p>
76 <p>Хорошая совместимость между разными платформами и фреймворками.</p>
76 <p>Хорошая совместимость между разными платформами и фреймворками.</p>
77 <p><strong>Минусы:</strong></p>
77 <p><strong>Минусы:</strong></p>
78 <p>Для просмотра содержимого без программной оболочки нужны специальные инструменты. Может быть избыточен для маленьких наборов данных.</p>
78 <p>Для просмотра содержимого без программной оболочки нужны специальные инструменты. Может быть избыточен для маленьких наборов данных.</p>
79 <p><strong>Что получилось</strong></p>
79 <p><strong>Что получилось</strong></p>
80 <p><strong>Ссылки:</strong></p>
80 <p><strong>Ссылки:</strong></p>
81 <ul><li><a>https://github.com/netart-studio/otus_de_project</a></li>
81 <ul><li><a>https://github.com/netart-studio/otus_de_project</a></li>
82 </ul><p><strong>BI, Дашборд</strong></p>
82 </ul><p><strong>BI, Дашборд</strong></p>
83 <p><strong>Г</strong>рафики котировок со средними скользящими и кривые спредов</p>
83 <p><strong>Г</strong>рафики котировок со средними скользящими и кривые спредов</p>
84 <p><strong>Видео демонстрация</strong></p>
84 <p><strong>Видео демонстрация</strong></p>
85 <p><a>https://rutube.ru/video/55ce11a5964923c23b07ff2bd6c6a357/</a></p>
85 <p><a>https://rutube.ru/video/55ce11a5964923c23b07ff2bd6c6a357/</a></p>
86 <p><strong>Демонстрация проекта: rutube.ru</strong></p>
86 <p><strong>Демонстрация проекта: rutube.ru</strong></p>
87 <p><strong>Выводы</strong></p>
87 <p><strong>Выводы</strong></p>
88 <ul><li>Цель проекта достигнута. Все поставленные задачи выполнены.</li>
88 <ul><li>Цель проекта достигнута. Все поставленные задачи выполнены.</li>
89 <li>Трудности были с настройкой<strong>Kafka</strong>. </li>
89 <li>Трудности были с настройкой<strong>Kafka</strong>. </li>
90 <li>На выполнение проекта ушло две недели. </li>
90 <li>На выполнение проекта ушло две недели. </li>
91 <li>Проект оказался полезным, я освоил новые для себя инструменты такие как<strong>Kafka, S3 Minio, Clickhouse.</strong>Полезность проекта оцениваю в 10 балов.</li>
91 <li>Проект оказался полезным, я освоил новые для себя инструменты такие как<strong>Kafka, S3 Minio, Clickhouse.</strong>Полезность проекта оцениваю в 10 балов.</li>
92 </ul>
92 </ul>