AI Хочу все знать

  • Автор темы Автор темы AI
  • Дата начала Дата начала

AI

Команда форума
Редактор
Регистрация
23 Авг 2023
Сообщения
3,969
Реакции
0
Баллы
36
Ofline
2d91028544786841566470e5f0884ce3.jpg


В проекте часто бывает некий data-flow который идет через ETL или даже отдельные серверы обогащения данных. Собственно и наш проект не исключение. Что было нужно? Данные из интернета летят в PostgreSQL, но только если в Redis не валяется хэш таких же. Далее несколько ETL проводит стандартный OLTP - OLAP преобразование и складывает все это в MongoDB - откуда клиент дергает эти данные и сравнивает их со своей PostgreSQL попутно складируя кэш в Redis. Все это периодически летает через RabbitMQ.

Что бесило? DBeaver + MongoExpress + redis-cli все это в разных местах с разными учетками, экспресс постоянно падал по невыясненной причине, неправильный запрос в редиску подвисал, а затем улетал в космос. Мелькнула мысль: "ну почему никто не написал чего-то более стабильного и удобного?", - собственно это и стало драйвером выходного дня.

Спасибо древним грекам, над названием долго думать не пришлось: Паноптикум - в оригинале "место откуда видно все", но также "сборище жутких и необычных артефактов".

Собственно дальше все очень просто, можно читать, можно искать, можно обновить отдельную запись (если DevOps разрешит) собственно это не production-ready софт, а простой и надежный инструмент для QA и разрабов. Примитивная basic-auth которую обязательно надо прятать под TLS и желательно за корп-VPN, чтобы только свои могли запороть. Для прода и около можно сделать READ_ONLY - но тут каждый сам решает надо оно вообще ему или нет.

Наконец-то можно проследить все преобразования данных и найти кто потерялся, можно открывать несколько вкладок, можно давать ссылку на конкретный объект. Ставится самым стандартным образом: берем образ - разворачиваем, ничего необычного.

Есть немного переменных:


  • PANOPTICUM_USER / PANOPTICUM_PASSWORD - Тут вроде как все понятно, да? Если не задать будет admin / admin


  • PANOPTICUM_DB_PATH - где будет жить локальная БД (там H2 под капотом) - моно не указывать, если вы не параноик по безопасности


  • PANOPTICUM_CONNECTIONS_JSON - массив готовых подключений (можно указать заранее, а не пихать их по одной через интерфейс, как делать - написано в README)


  • ADMIN_LOCK - Если true то соединения нельзя добавлять или удалять, что дал DevOps с тем и живем


  • READ_ONLY - вырубает все кнопки "сохранить" - собственно весь остальной функционал остается.

Стоит учитывать, что не все одинаково полезны разрешено менять, так ClickHouse и RabbitMQ всегда только для чтения это не баг, это так и задумано. Вообще-то нам нужно было только то, что упоминалось в самом начале, но позже было решено добавить все что можно,так в код залетело много всякого. В итоге мы имеем вот такой вот список:


  • PostgreSQL / CockroachDB / YugabyteDB


  • MySQL / MariaDB


  • MS SQL Server


  • MongoDB


  • Redis / Dragonfly / Valkey / KeyDB


  • ClickHouse


  • Cassandra / ScyllaDB


  • RabbitMQ


  • Kafka


  • Elasticsearch / OpenSearch

Не рекламы ради, а пользы для...

Собственно продукт не претендует на "самый лучший софт на свете", нам нравится - может и другим пригодится.

докер: sharque/panopticum - Docker Image https://hub.docker.com/r/sharque/panopticum

гит: GitHub - theSharque/panopticum: A simple and flexible control system for managing various databases in your Kubernetes cluster https://github.com/theSharque/panopticum
 
Назад
Сверху Снизу
Яндекс.Метрика Рейтинг@Mail.ru