правильно делаю
У нас есть одна таблица которая replicated на 3-х серверах (идентичные копии) и есть таблица которая distributed которая смотрит на 3 эти сервера
Задачи получить Triple Read Gain, но я четко вижу что когда бежит запрос то читает clickhouse с одного сервера, а на двух других серверах ничего не происходит в этот момент, нет загрузки CPU, IO etc.
Что я упуская и по какому принципу вообще такой вид запрос может делать distributed computation of results ?
Заранее спасибо
Павел
# SCHEMA
CREATE TABLE fgi.articles_fts
(
keyword String,
internal_id String,
publish_date DateTime('UTC')
)
ENGINE = Distributed('cluster', 'fgi', 'articles_fts_data', rand())
# EXPLAIN
explain select count(*) from fgi.articles_fts;
EXPLAIN
SELECT count(*)
FROM fgi.articles_fts
┌─explain─────────────────────────────────┐
│ ReadFromStorage (Read from Distributed) │
└─────────────────────────────────────────┘
1 rows in set. Elapsed: 0.012 sec.
# CONF
<yandex>
<cluster>
<cluster>
<shard>
<internal_replication>true</internal_replication>
<replica>
<host>1.internal</host>
<port>9000</port>
</replica>
<replica>
<host>2.internal</host>
<port>9000</port>
</replica>
<replica>
<host>3.internal</host>
<port>9000</port>
</replica>
</shard>
</cluster>
</remote_servers>
</yandex>
Я могу ошибаться но разве distributed таблицы работают с replicated? Вроде как они предназначены для работы с шардированными таблицами. И как мне тут недавно объясняли на обычном селекте даже с шардированными таблицами прироста скорости не будет.
replicated могут быть и не быть шардированными. смотря с какой стороны смотреть
Это я понимаю что они могут быть не шардированными, просто тут вопрос, а разве distributed будет работать быстрее просто на нешардированных replicated таблицах?
https://clickhouse.tech/docs/ru/operations/settings/settings/#settings-max_parallel_replicas + SAMPLING на таблице пробовали?
Спасибо я посмотрю
нет не пробовали Sampling
Обсуждают сегодня