TGViewer
дневник Бриджит Джунс (de)👩‍💻💅 дневник Бриджит Джунс (de)👩‍💻💅 @de_zametki · 435 subscribers
Post #58 964
Скоро сдаю "методичку по ClickHouse" — будут меня тестить, насколько разобралась в каких-то базовых вещах и некоторых особенностях. Оставлю пометки, которые я себе сделала (для закрепления и повторения в будущем).

Прошерстим понятия кластера, ноды(узла), шарда, реплики.

Нода (узел) - физический/виртуальный сервер, с установленным Clickhouse-server. Тут сразу можно сделать пометку, что нода - реальный "вычислительный ресурс", а вот шард и реплика - это логические роли.

Сначала напомним себе, зачем вообще нужны шардирование и репликация. Шардирование нужно для горизонтального масштабирования (разделяем данные с одного узла на несколько). Репликация нужна для повышения отказоустойчивости (дублируем данные одного узла, чтобы в случае проблем с одним узлом, остался доступ к другому).

Важно упомянуть про "правильный ключ шардирования" - такой, чтобы не возникло перекоса данных и не появился "горячий шард" - узел в распределенной системе, который испытывает непропорционально высокую нагрузку по сравнению с другими узлами (в таком случае нарушается сама идея шардирования).

Таким образом, в основном, все строится так - допустим, изначально один шард занимает одну ноду (ноде назначается логическая роль "шард" для хранения части распределенных данных). Второй/третий и т.д. шарды занимают другие отдельные узлы. У каждого шарда может быть несколько реплик. Допустим, у нас 2 шарда с 2 репликами. Тогда нам понадобится 4 ноды для этой системы: первая реплика первого шарда и вторая реплика первого шарда. Это два узла. И еще два узла - это первая реплика второго шарда и вторая реплика второго шарда. Для наглядности под постом две картинки.

Кластер - это логическое объединение нод в одну систему. Это не физический объект, а описание топологии в конфигурации ClickHouse. Кластером может быть даже одна нода, если так выстроена архитектура и у нас нет нескольких шардов, нет реплик. Но чаще, это все же похоже на тот случай, который мы рассмотрели чуть выше:

Кластер
├── Шард 1
│ ├── Реплика 1
│ └── Реплика 2
└── Шард 2
├── Реплика 1
└── Реплика 2
______________________________________________________________________________


Момент про реплики: меня такая схемка когда-то давно запутала и я думала, что при наличии репликации для шардов, шард 1 является как бы "оригиналом" и для него есть 2 реплики. Но на самом деле, как только появляется понятие репликации, наши узлы именуются, как "первая реплика шарда n" и "вторая реплика шарда n". Есть две реплики шарда на двух узлах и все, отдельно "оригинала" шарда нет, мы называем два узла - двумя репликами. Закреплю - как только появляется репликация, узлы описываются именно как реплики конкретного шарда (первая, вторая и т.д.).

Второй момент, который дошел на практике: реплика ≠ полная копия ноды. Чтобы реплицировать данные, нужно использовать специальные реплицированные таблицы с движками группы Replicated. Для управления этими процессами есть ZooKeeper. О нем как-нибудь в другой раз. В чем суть - обычная табличка MergeTree не окажется магическим образом на второй реплике. Эх.


И последнее - в ClickHouse реализована гомогенная архитектура - все узлы кластера являются равноправными, отсутствует чёткое разделение на ведущие и ведомые ноды.
  • ❤ 18
  • 🔥 4
  • 👍 3
More from @de_zametki
  1. Jul 2, 2026✍️ Дорогой дневник, что я успела натворить с DataHub 1️⃣ oops!... i did incident Первой мо…
  2. Jun 29, 2026привет🙋‍♀️ Меня долго не было, и сложно написать что-то мега-полезное, потому что довольн…
  3. Nov 1, 2025🇷🇺ТОВАРИЩИ🇷🇺 Хотите узнать, до чего доводит людей рабочая суббота? 🇷🇺 Ответ в видео.…
  4. Nov 1, 2025грубо говоря, примерно так😁😁 для всех, кому картинки помогают запоминать[me]
  5. Nov 1, 2025Помните разбирали шарды и реплики в ClickHouse? Так вот, сегодня у нас на обэд🍽 три базов…
  6. Nov 1, 2025Всем хиллоу и лёгкой рабочей субботы! У меня после отпуска улиточный темп🐌 но не сдаемся,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →