
Приветствую всех читателей! Сегодня я хочу рассказать вам о своем мини‑проекте под названием «Песочница Sandbox DB».
Если вам лень читать статью, вот ссылка на проект: Sandbox DB на GitFlic.
Я работаю DWH‑разработчиком уже 6 лет, и все эти годы мне приходится постоянно учиться и осваивать новые инструменты.
При самостоятельном обучении мы сталкиваемся с множеством трудностей. Одна из главных проблем — это план обучения: какую технологию изучать, в каком порядке, где брать задачи для закрепления материала и так далее.
Наверное, именно поэтому платные курсы от IT‑инфоцыган будут существовать еще долго. Платные курсы решают часть этих проблем, а те, кто не готов платить, страдают от хаоса.
Не все могут сесть и составить четкий план обучения из огромного количества информации — даже опытные разработчики сталкиваются с этим.
Одно из решений для таких людей — это дорожные карты для обучения, но они тоже решают только часть проблем.
Вот пример дорожной карты для дата‑инженеров: HalltapeRoadmapDE на GitHub.
Эта карта задает верное направление для обучения, но в ней нет четкого плана изучения каждой технологии.
Для себя я решил эту проблему так: открываю книгу по нужной технологии, и оглавление книги становится моим планом обучения. Материал для лекций я беру из официальной документации.
Таким образом, я получаю четкую структуру обучения и актуальную информацию.
Вторая проблема заключается в том, что каждый раз при знакомстве с новой технологией ее нужно скачивать и настраивать. Затем выясняется, что для корректной работы требуется еще один инструмент, и так по кругу.
В итоге много времени уходит на запуск и настройку инструмента, а при 40-часовой рабочей неделе на учебу остается всего 1–3 часа в день.
К тому же, инструментов сейчас — огромное количество. Если следовать дорожной карте, то их еще нужно объединять друг с другом, что приводит к дополнительным затратам времени.
Меня это раздражало, и я решил потратить время, чтобы один раз собрать и настроить все инструменты, которые могут пригодиться для обучения.
Так появился проект Sandbox DB.
Обзор песочницы
Я объединил в одном docker‑compose файле более 10 инструментов, явно назначил им IP‑адреса и сделал одинаковые логины и пароли для всех сервисов, где это было возможно.
Также все конфигурации и дополнительные файлы для сервисов я разложил по папкам.
Вот и всё, что я сделал:)
Краткий список того, что внутри
Основные сервисы:
- Postgres — реляционная база данных.
- ClickHouse — колоночная СУБД для аналитики в реальном времени.
- MinIO — объектное хранилище.
- Apache Iceberg — формат таблиц для больших данных.
- Trino (ранее PrestoSQL) — распределенный SQL‑движок для выполнения запросов к различным источникам данных.
- JupyterHub + Spark — среда для интерактивной работы с данными и выполнения распределенных вычислений с помощью Apache Spark.
- Apache Airflow — платформа для оркестрации рабочих процессов и задач.
- Apache Superset — инструмент для визуализации и исследования данных.
- Hadoop — экосистема для распределенной обработки больших данных.
- Grafana — платформа для визуализации и мониторинга нагрузки сервисов.
Вспомогательные сервисы:
- Zookeeper — сервис для координации распределенных систем.
- Kafka — распределенная потоковая платформа для обработки событий в реальном времени.
- Redis — in‑memory хранилище данных, используемое как кэш или брокер сообщений.
- Hive Metastore — сервис для управления метаданными в экосистеме Hadoop.
- MariaDB — реляционная база данных, альтернатива MySQL.
Требования:
- Операционная система: Linux/MacOS. Если у вас Windows, придется самостоятельно внести ряд изменений, чтобы всё заработало.
- ОЗУ: от 16 ГБ — сервисов очень много, и при их одновременном запуске у меня уходит 10–11 ГБ ОЗУ.
- ПЗУ: от 20 ГБ.
- Пользователь: должен уметь копировать код из репозитория Git, пользоваться Docker и Docker Compose.
Заключение
Как видите, в ваши руки попадает множество популярных инструментов, а дальше — творите, что хотите!
Стройте любые архитектуры, на которые хватит этих инструментов, или изучайте их по одному.
Вам не нужно тратить время на их настройку.
Песочница ориентирована на пользователей Linux, но и пользователи Windows смогут справиться с запуском, отредактировав команды под свою ОС.
Я создавал этот проект для себя, но в дальнейшем планирую его развивать. Хочу добавить dbt и Greenplum, а также документацию по сервисам.
Планирую описать планы изучения для каждого инструмента, дать ссылки на курсы и литературу, но только после того, как сам освою их в нужном объеме, так что это будет не быстро.
Если будут проблемы, обращайтесь помогу чем смогу: https://t.me/ananevsyu
Спасибо, что дочитали! Всем хорошего дня!
Источник: https://habr.com/ru/articles/896054/