Ssylka

Репликация Materialized Views в ClickHouse: уроки аварийного восстановления

В ClickHouse, материализованные представления (MV) с движком ReplicatedMergeTree реплицируются отдельно от основных таблиц, на которых они построены. Это необходимо, поскольку MV выступают как триггеры на INSERT. При репликации основных таблиц, INSERT в MV не происходит, следовательно, репликация MV необходима для актуальности данных.
Репликация Materialized Views в ClickHouse: уроки аварийного восстановления
Изображение носит иллюстративный характер

В случае повреждения ZooKeeper и последующего восстановления, MV могут перейти в readonly режим из-за отсутствия метаданных в ZooKeeper. Простой SYSTEM RESTORE REPLICA не всегда решает эту проблему.

Эффективным способом восстановления MV является команда SYSTEM RESTORE REPLICA непосредственно для таблиц, являющихся хранилищем данных MV. Эти таблицы имеют имена вида .inner_id.UUID. Определение readonly таблиц можно сделать запросом к system.replicas.

Для избежания простоев рекомендуется использовать явное указание целевой таблицы при создании MV, что упрощает понимание и управление. В противном случае, ClickHouse создает таблицы хранилища сам, с именами вида .inner_id.UUID, что может затруднить восстановление после сбоев.


Новое на сайте