From efb573c62c4789149a017622f2f76dcdc86df24b Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Sat, 9 Aug 2025 21:52:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BD=D0=B5=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 51 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 73d5f6f..c1a7439 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ git clone https://github.com/dementev-dev/clickhouse-learning-cluster cd clickhouse-learning-cluster # Запускаем кластер -docker compose up -d +docker compose up # Проверяем статус docker compose ps @@ -140,35 +140,46 @@ ENGINE = Distributed(c2sh2rep, default, user_scores_local, user_id); -- Генерируем тестовые данные INSERT INTO user_scores SELECT - number % 100000 + 1 AS user_id, - toFloat32(rand() % 50 + rand() % 50) / 10 AS avg_score, - now() - (number * 86400 / 1000) AS created_at -FROM numbers(100000); + number % 10000000 + 1 AS user_id, + toFloat32(rand() % 50 + rand() % 50) / 10 AS avg_score, + now() - (number * 86400 / 1000) AS created_at +FROM numbers(10000000); -- Проверяем распределение данных по шардам -SELECT - _shard_num AS shard_num, - hostName() AS host, - count() AS rows -FROM clusterAllReplicas('c2sh2rep', 'default', 'user_scores_local') -GROUP BY _shard_num, host -ORDER BY _shard_num, host; +SELECT + shardNum() AS shard_id, + count() AS rows_per_shard +FROM user_scores +GROUP BY shard_id +ORDER BY shard_id; ``` ### Мониторинг репликации ```sql -- Состояние репликационных очередей -SELECT - database, - table, - replica_name, - total_replicas, - active_replicas -FROM system.replicas; +SELECT + hostName() AS host, + database, + table, + replica_name, + total_replicas, + active_replicas, + is_leader, + is_readonly +FROM clusterAllReplicas('c2sh2rep', 'system', 'replicas') +ORDER BY host, table; -- Лог репликации -SELECT * FROM system.replication_queue LIMIT 10; +SELECT + hostName() AS host, + event_time, + table, + event_type, -- NewPart / MergeParts / DownloadPart и т.д. + part_name -- имя парты (универсальное поле) +FROM clusterAllReplicas('c2sh2rep', 'system', 'part_log') +ORDER BY event_time DESC +LIMIT 100; ``` ## 🛠️ Структура проекта