Небольшой дашборд, с помощью которого можно отследить некорректно созданные таблицы в кластере Clickhouse. Можно использовать и просто при использовании балансировщика для нод, без шардирования, так и при шардировании + балансировщик, например как chproxy или happroxy. Основная идея состоит в том, что на всех нодах в кластере таблицы должны иметь одинаковые имена и идентичные CREATE TABLE. Это всё обычно решается при созданиии таблиц с помощью ddl, но в случае с индексами ddl не работает, т.к. требует включения экспериментальной опции, и таблицы приходится создавать на каждой ноде по отдельности, и может возникнуть ситуация когда у таблиц разная структура, или на каких-то нодах таблица отсутствует.
Проходим по всем нодам, собираем все имена таблиц. Затем перебираем все найденные таблицы и ищем ноды, на которых таблица отсутствует. Если имя этой таблицы есть хотя бы на одной ноде, но отсутствует на других, она подсвечивается, и в списке нод можно посмотреть структуру таблицы и на каких нодах она отсутствует. Кроме этого для всех найденных таблиц сравнивается структура, которая берется system.create_table_query. Для таблиц, которые созданы с использованием макросов для шардов и реплик они должны быть одинаковыми на всех нодах. По крайне мере в одной версии клика они идентичны. Для подключения к серверам Clickhouse используется https://clickhouse-driver.readthedocs.io/en/latest/ драйвер, порт 9000 должен быть открыт на всех нодах.
Может быть проблемой, но для авторизации используется LDAP Active Directory, других способов не предусмотрено.
Перед запуском прописываем переменные среды в docker-compose.yml.