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

в 10:52, , рубрики: clickhouse, postgres, python, spark, superset, анализ данных, базы данных
Песочница 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

Спасибо, что дочитали! Всем хорошего дня!

Автор: GolosCD

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js