Sandbox DB: универсальная песочница для погружения в Big Data, аналитику и визуализацию

Песочница Sandbox DB
Песочница Sandbox DB

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

Опубликовано в категории: Статьи