Skip to content

it1804/clickhouse-cluster-panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Описание

Небольшой дашборд, с помощью которого можно отследить некорректно созданные таблицы в кластере 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published