
Приветствую всех читателей! Сегодня я хочу рассказать вам о своем мини‑проекте под названием «Песочница 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
Спасибо, что дочитали! Всем хорошего дня!
Автор: GolosCD