You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Вступление. Немного о масштабировании Clickhouse
11
+
12
+
13
+
Сдесь будет очень коротко что такое кластер и репликация+шардирование.
14
+
Нет смысла переписывать документацию.
15
+
16
+
17
+
имеется база данных, в которую осуществляется запись и чтение данных.
18
+
В динамично растущих системах, объемы данных, как правило, быстро
19
+
увеличиваются и рано или поздно можно столкнуться с проблемой,
20
+
когда текущих ресурсов машины будет не хватать для нормальной работы.
21
+
22
+
Для решения этой проблемы применяют масштабирование.
23
+
Масштабирование бывает 2-х видов — горизонтальное и вертикальное.
24
+
25
+
Вертикальное масштабирование — наращивание мощностей одной машины — добавление CPU, RAM, HDD.
26
+
Горизонтальное масштабирование — добавление новых машин к существующим и распределение данных между ними.
27
+
28
+
29
+
Второй случай более сложен в конфигурации, но имеет ряд преимуществ:
30
+
Теоретически бесконечное масштабирование (машин можно поставить сколько угодно)
31
+
Бо́льшая безопасность данных (только при использовании репликации) — машины могут располагаться в разных дата центрах (при падении одной из них, останутся другие)
32
+
33
+
34
+
35
+
36
+
37
+
38
+
Для подключения к кластеру используем отдельный класс
39
+
40
+
41
+
# Отправка запросов в кластер, реализация миграций на PHP
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
### Примеры миграций
50
+
51
+
Мы используем (mybatis):[http://www.mybatis.org/migrations/]
52
+
53
+
54
+
55
+
https://habrahabr.ru/post/315254/
56
+
57
+
58
+
Почему миграции это круто ?
59
+
Допустим у вас таблица из 50 колонок , а елси их 200 или 500 ?
60
+
Вы ведете отдельную документацию по каждой колонке?
* Установленно соединение со всеми сервера перечисленным в DNS записи
105
264
* Проверка таблицы system.replicas что всё хорошо
106
265
* not is_readonly
@@ -114,8 +273,23 @@ if (!$cl->isReplicasIsOk())
114
273
* active_replicas < total_replicas
115
274
116
275
276
+
future_parts: количество кусков с данными, которые появятся в результате INSERT-ов или слияний, которых ещё предстоит сделать
277
+
parts_to_check: количество кусков с данными в очереди на проверку Кусок помещается в очередь на проверку, если есть подозрение, что он может быть битым.
278
+
log_max_index: максимальный номер записи в общем логе действий
279
+
log_pointer: максимальный номер записи из общего лога действий, которую реплика скопировала в свою очередь для выполнения, плюс единица
280
+
Если log_pointer сильно меньше log_max_index, значит что-то не так.
281
+
total_replicas: общее число известных реплик этой таблицы
282
+
active_replicas: число реплик этой таблицы, имеющих сессию в ZK; то есть, число работающих реплик
283
+
Если запрашивать все столбцы, то таблица может работать слегка медленно, так как на каждую строчку делается несколько чтений из ZK.
284
+
Если не запрашивать последние 4 столбца (log_max_index, log_pointer, total_replicas, active_replicas), то таблица работает быстро.
0 commit comments