clickhouse_ru | Неотсортированное

Telegram-канал clickhouse_ru - ClickHouse не тормозит

11238

Обсуждаем ClickHouse

Подписаться на канал

ClickHouse не тормозит

Посидеть в тени пару часов 3500, мороженое

Читать полностью…

ClickHouse не тормозит

Отнести письмо на почту 3000, конфеты в бонус

Читать полностью…

ClickHouse не тормозит

Забрать коробку и передать 4500, с меня тортик

Читать полностью…

ClickHouse не тормозит

Привет.

Вопрос про запросы к distributed-таблицам с использованием Query Parameters.

tldr: почему при запросе к distirbuted-таблице с использованием QueryParameters клику не получается определить нужный шард исходя из запроса, а "хардкодя" параметры в сам запрос, клик понимает в какие шарды нужно сходить


У меня есть кластер состоящий из 5 шардов. Версия клика 24.1.2.5

Я выполняю следующие запросы

1. Создание таблиц


create table test.yakovlev_test_local on cluster c5 (
id int,
height int
)
Engine = MergeTree
order by tuple();

create table test.yakovlev_test on cluster c5 as test.yakovlev_test_local
engine = Distributed('c5', 'test', 'yakovlev_test_local', id);


2. Наполнение таблиц данными


insert into test.yakovlev_test
select number, randUniform(50, 100)::int as height from numbers(1000000000);


3. Выполнение ряда запросов, для которых различна логика выполнения.

Запрос 3.1


select * from test.yakovlev_test
where id = 5;

**some logs here**
[hostname-s2-1] 2025.09.02 20:20:55.143024 [ 859991 ] {96ab5ac7-a72c-4152-a849-419ef4e8dc6c} <Debug> StorageDistributed (yakovlev_test): Skipping irrelevant shards - the query will be sent to the following shards of the cluster (shard numbers): [1]
┌─id─┬─height─┐
1. │ 5 │ 52 │
└────┴────────┘
**some logs here**

1 row in set. Elapsed: 0.041 sec. Processed 200.00 million rows, 800.00 MB (4.88 billion rows/s., 19.54 GB/s.)
Peak memory usage: 233.62 KiB.


Внимание на

StorageDistributed (yakovlev_test): Skipping irrelevant shards - the query will be sent to the following shards of the cluster (shard numbers): [1]

Клику удалось понять, в какой шард идти, запрос отправлен только в один шард

Запрос 3.2


select * from test.yakovlev_test
where id in (1,100,105,1001);

**some logs here**
[hostname-s2-1] 2025.09.02 20:22:44.331452 [ 859991 ] {160cca24-fd18-4a58-829d-9f5817023d5d} <Debug> StorageDistributed (yakovlev_test): Skipping irrelevant shards - the query will be sent to the following shards of the cluster (shard numbers): [1, 2]
**some logs here**
┌───id─┬─height─┐
1. │ 1 │ 86 │
2. │ 1001 │ 52 │
└──────┴────────┘
**some logs here**
┌──id─┬─height─┐
3. │ 100 │ 50 │
4. │ 105 │ 69 │
└─────┴────────┘
**some logs here**

4 rows in set. Elapsed: 0.089 sec. Processed 400.00 million rows, 1.60 GB (4.50 billion rows/s., 18.01 GB/s.)
Peak memory usage: 475.17 KiB.




Внимание на StorageDistributed (yakovlev_test): Skipping irrelevant shards - the query will be sent to the following shards of the cluster [1, 2]


Клику удалось понять, в какой шард идти, запрос отправлен только в два шарда [1, 2].

Запрос 3.3



set param_ID = [1,100,105,1001];

select * from test.yakovlev_test
where id in {ID:Array(Int)};


SET param_ID = '[1, 100, 105, 1001]'

Query id: 858d378d-6431-4f2d-a48c-3959fdc1c37d

**some logs here**

0 rows in set. Elapsed: 0.044 sec.


SELECT *
FROM test.yakovlev_test
WHERE id IN ({ID:Array(Int)})

Query id: ec172c10-d50b-4364-8f8d-be0420607149

**some logs here**
[hostname-s2-1] 2025.09.02 20:23:12.456240 [ 859991 ] {ec172c10-d50b-4364-8f8d-be0420607149} <Debug> StorageDistributed (yakovlev_test): Unable to figure out irrelevant shards from WHERE/PREWHERE clauses - the query will be sent to all shards of the cluster
**some logs here**
┌───id─┬─height─┐
1. │ 1 │ 86 │
2. │ 1001 │ 52 │
└──────┴────────┘
**some logs here**
┌──id─┬─height─┐
3. │ 100 │ 50 │
4. │ 105 │ 69 │
└─────┴────────┘
**some logs here**

4 rows in set. Elapsed: 0.111 sec. Processed 1.00 billion rows, 4.00 GB (9.02 billion rows/s., 36.10 GB/s.)
Peak memory usage: 2.05 MiB.



Внимание на
[hostname-s2-1] 2025.09.02 20:23:12.456240 [ 859991 ] {ec172c10-d50b-4364-8f8d-be0420607149} <Debug> StorageDistributed (yakovlev_test): Unable to figure out irrelevant shards from WHERE/PREWHERE clauses - the query will be sent to all shards of the cluster

Клику не удалось понять, куда сходить, и он отправил запрос во все шарды кластера.

Читать полностью…

ClickHouse не тормозит

Забрать коробку и передать 4500, с меня тортик

Читать полностью…

ClickHouse не тормозит

в 25.8.1 баг, надо выключить default кластер (т.е. у своего remote_servers сделать replace)

https://github.com/ClickHouse/ClickHouse/issues/86434

/channel/clickhouse_ru/429571

Читать полностью…

ClickHouse не тормозит

ON CLUSTER запросы идут через кипер. insert идет напрямую. Смотрите в сторону сетевой связанности кипера и кластера. Возможно, у вас в конфигах указаны dns имена и их resolve проходит долго, отсюда задержка. Может еще что в настройках.

Читать полностью…

ClickHouse не тормозит

Говорят, пушка гонка

Читать полностью…

ClickHouse не тормозит

заведите issue без стектрейса непонятно...

Читать полностью…

ClickHouse не тормозит

нормальный батч это миллион строк

батчи по 10-20k строк маленькие

100k-1kk строк, в итоге где то так плавают все...

Читать полностью…

ClickHouse не тормозит

вставляю JS клиентом для клика

• батч 50k строк
• периодичность ~10 секунд
• 20 воркеров
• MergeTree

Читать полностью…

ClickHouse не тормозит

Анализатор выключили перед обновлением, но возможно проблема в том, что запрос состоит из 3 cte, которые на разные кластера смотрят

2 из них той же версии, 1 - 23.8 (не смогли обновить его)

Читать полностью…

ClickHouse не тормозит

в 24.8 исправили и оно ломаться начало или в чем исправление заключается?

Читать полностью…

ClickHouse не тормозит

select version()

похоже на баг когда КХ не удалял неактивные парты

Читать полностью…

ClickHouse не тормозит

И какое оптимальное количество строк в блоке? От 100-1000??

Читать полностью…

ClickHouse не тормозит

вариантов много но ни один не соответсвует теме форума

Читать полностью…

ClickHouse не тормозит

Какая-то путаница в репозитории чтоль, не могу понять.. почему-то в master ветке есть метод Clear() для очистки батча. А в релизной верси 2.5.1 нет..Подскажите по репе, в мастере что у кх, в прод лучше не брать??

Читать полностью…

ClickHouse не тормозит

Вопрос: почему в запросе 3.3 клику не удалось понять в какие шарды сходить за данными, несмотря на то, что в запросе 3.2 точно такой же запрос без QueryParameters удалось оптимизировать и выполнить только на некоторых шардах?


Данное поведение приводит к тому, что если одна из 5 машин по какой-то причине недоступна, в результате получим ошибку, несмотря на то, что у клика была возможность достать нужные данные.


Возможно такое поведение было пофикшено на более высоких версиях? Кто-то сталкивался с таким?
Возможно можно как-то переписать запрос, чтобы с QueryParameters он стал ожидаемо выполняться?

Читать полностью…

ClickHouse не тормозит

Присмотреть за сумкой 3000, кофе

Читать полностью…

ClickHouse не тормозит

<?xml version="1.0" ?>
<clickhouse>
<remote_servers replace="1">

Читать полностью…

ClickHouse не тормозит

Сходить со мной в одну точку 4500, печеньки ждут

Читать полностью…

ClickHouse не тормозит

Привет, создал чистый кластер клика через altinity operator.
1 шард, 3 реплики. Пинг между нодами примерно 1мс. Работает через clickhouse-keeper.
версия клика 25.8.1

Почему-то ON CLUSTER запросы очень медленные. Даже CREATE TABLE или DROP TABLE могут занимать минуту, но выполниться на всех нодам.

Если всё таки дождаться и выполнить INSERT в одну из реплик, то репликация происходит без задержек, равномерно на всех репликах

Подскажите куда копать.
Спасибо

Читать полностью…

ClickHouse не тормозит

Напомните мне пожалуйста, несмотря на то, что говорят JSON is production ready, все равно же получается рисколвать особо не стоит по причине что не все оптимизировано?

Читать полностью…

ClickHouse не тормозит

Привет.
Обновился с 25.3 до 25.8.1, стал ловить UNKNOWN_ACCESS_TYPE. В system.errors: Unknown access type: ID и Unknown access type: {}. Больше нигде не нашел ничего. Это случайно не новая фантомная ошибка, как CANNOT_PARSE_INPUT_ASSERTION_FAILED?

Читать полностью…

ClickHouse не тормозит

Что принято считать большим батчем? От?

Читать полностью…

ClickHouse не тормозит

а к стати нельзя ли никак скидывать временное состояние расчета оконных функций на диск?

по аналоги с max_bytes_befor_external_group_by и тд

Читать полностью…

ClickHouse не тормозит

исправление в том что запрос использует 10ГБ а учитывается 3ГБ, поэтому теперь падает, т.е. 23.8 тоже должна была падать с этой ошибкой

и это все слишком абстрактный разговор, возможно план изменился полностью из-за enable_analyzer=1

Читать полностью…

ClickHouse не тормозит

там исправили проблему с неправильным учетом использованной памяти.

Читать полностью…

ClickHouse не тормозит

И каким образом async_insert=1 влияет на производительность при маленьких вставках, и будет ли это как-то влиять если при этом будут и батчи и маленькие вставки??

Читать полностью…

ClickHouse не тормозит

Всем привет! Как раз по теме батчей вопросец, направьте пожалуйста на информацию как в клиентской либе на c++ переиспользовать блок для вставки? Т.е. я создал блок по табличной схеме, наполняю, по условию сбрасываю в базу и тут чтобы не вызывать деструктор блока и потом опять конструктор, хотелось бы очистить блок и переиспользовать его.. Чет не могу разобраться как это делать..😅

Читать полностью…
Подписаться на канал