Size: a a a

ClickHouse не тормозит

2020 July 08

DC

Denny Crane (I don't... in ClickHouse не тормозит
Slach
хмм... вроде system.parts_log еще можно посмотреть если настроено

system.merges только показывает Текущие background мержи вроде бы только
https://clickhouse.tech/docs/en/operations/system-tables/merges/
врятли вы там OPTIMIZE увидите
Конечно увидите. Optimize вызывает незапланированный обычный мерж
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksiy Golovko
show processlist пуст
Скорее всего успешно закончился optimize. Он не может отманится
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
Скорее всего успешно закончился optimize. Он не может отманится
Непонятно. Скорее всего нет, т.к. запрос с FINAL и без FINAL дают разные результаты (как и до optimize)
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Более того - теперь у меня в логах такое:
(ReplicatedMergeTreeQueue): Not executing log entry MERGE_PAR
TS for part 202005_0_2566_9 because source parts size (370.71 GiB) is greater than the current maximum (33.71 GiB).
источник

D

Dmitry Koreckiy in ClickHouse не тормозит
Oleksiy Golovko
Непонятно. Скорее всего нет, т.к. запрос с FINAL и без FINAL дают разные результаты (как и до optimize)
Ну так final принудительно оптимизирует все. А оптимайз хз когда выполнится
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrey
Подскажите, вопрос по настройке insert_quorum - при миграции БД с 20.3 на 20.5 clickhouse выдал сообщение о том, что настройку insert_quorum правильно устанавливать в профайле пользователя.  У меня практически все данные приходят в clickhouse из kafka - мне нужно установить её для профиля пользователя default ?
Ее только в профиле и можно установить. Где она была до этого? Для кафки лучше вообще не ставить, но да в профиле дефаулт. В остальных профилях придется отменить, потому что они унаследуют.
источник

A

Andrey in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
Ее только в профиле и можно установить. Где она была до этого? Для кафки лучше вообще не ставить, но да в профиле дефаулт. В остальных профилях придется отменить, потому что они унаследуют.
Была в основном конфиге
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Borisenko
Всем привет! Подскажите, что за ерунда со временем и часовым поясом? Как правильно с ним работать, у нас на разных клиентах отображается разное значение (со смещением на часовой пояс)
Часовой пояс применяется клиентами при рендеринге в строки
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Dmitry Koreckiy
Ну так final принудительно оптимизирует все. А оптимайз хз когда выполнится
Емм, я наверное неправильно выразился - я имел в виду SELECT FROM FINAL. Т.е. если OPTIMIZE и выполнился, то дубликаты все еще на месте
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Andrey
Была в основном конфиге
Значит не работала, старые кх не проверяли просто, что не в тот конфиг вписано
источник

A

Andrey in ClickHouse не тормозит
понятно, спасибо
источник

AS

Aleh Sauko in ClickHouse не тормозит
источник

SB

Sergey Borisenko in ClickHouse не тормозит
Спасибо
источник

AE

Alexey Er in ClickHouse не тормозит
КХ, типа, не тормозит, но заставляет тормозить привязанный к нему Мускуль :)

SELECT id FROM my.test LIMIT 1;

1 rows in set. Elapsed: 0.153 sec.

SELECT id FROM my.test WHERE id < 2000;

4 rows in set. Elapsed: 0.117 sec.

SELECT id FROM my.test WHERE id > 2000 LIMIT 1;

1 rows in set. Elapsed: 1.242 sec. Processed 65.54 thousand rows, 524.29 KB (52.75 thousand rows/s., 421.96 KB/s.)


Видно, что оптимизация есть: после чтения 64К записей коннект прервался (а их там больше). Но LIMIT не пробрасывается в MySQL, в результате чего по сети гоняется рулон лишних данных.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexey Er
КХ, типа, не тормозит, но заставляет тормозить привязанный к нему Мускуль :)

SELECT id FROM my.test LIMIT 1;

1 rows in set. Elapsed: 0.153 sec.

SELECT id FROM my.test WHERE id < 2000;

4 rows in set. Elapsed: 0.117 sec.

SELECT id FROM my.test WHERE id > 2000 LIMIT 1;

1 rows in set. Elapsed: 1.242 sec. Processed 65.54 thousand rows, 524.29 KB (52.75 thousand rows/s., 421.96 KB/s.)


Видно, что оптимизация есть: после чтения 64К записей коннект прервался (а их там больше). Но LIMIT не пробрасывается в MySQL, в результате чего по сети гоняется рулон лишних данных.
да limit не пробрасывается. Это сделано специально, есть issue на гитхабе где описано почему
источник

AE

Alexey Er in ClickHouse не тормозит
Alexey Er
КХ, типа, не тормозит, но заставляет тормозить привязанный к нему Мускуль :)

SELECT id FROM my.test LIMIT 1;

1 rows in set. Elapsed: 0.153 sec.

SELECT id FROM my.test WHERE id < 2000;

4 rows in set. Elapsed: 0.117 sec.

SELECT id FROM my.test WHERE id > 2000 LIMIT 1;

1 rows in set. Elapsed: 1.242 sec. Processed 65.54 thousand rows, 524.29 KB (52.75 thousand rows/s., 421.96 KB/s.)


Видно, что оптимизация есть: после чтения 64К записей коннект прервался (а их там больше). Но LIMIT не пробрасывается в MySQL, в результате чего по сети гоняется рулон лишних данных.
А с ORDER BY совсем печально: получает на себя все гуголиарды записей, потом сортирует и выбирает лимит.
источник

AE

Alexey Er in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
да limit не пробрасывается. Это сделано специально, есть issue на гитхабе где описано почему
Я догадываюсь, почему (связанные запросы из нескольких баз и всё такое). Но в простейших случаях, коих большинство, выглядит весьма плачевно.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Alexey Er
Я догадываюсь, почему (связанные запросы из нескольких баз и всё такое). Но в простейших случаях, коих большинство, выглядит весьма плачевно.
нет, не поэтому. КХ не знает синтаксис mysql / pg/ informix/ mssql и не знает умеют они limit или нет
источник

АК

Антон Куляшов... in ClickHouse не тормозит
Всем привет! Подскажите пожалуйста, как в новом синтаксисе создания ReplicatedMergeTree таблиц указать поле date column для метадаты зукипера?
Если раньше мы создавали таблицу так
CREATE TABLE test.foo(`date` Date, `created` DateTime, `value` Int32) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/foo', '{replica}', date, value, 8192);

И получали такую метадату в зк
[zk: localhost:2181(CONNECTED) 5] get /clickhouse/tables/1/foo/metadata
metadata format version: 1
date column: date
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
granularity bytes: 10485760

То теперь создаем так
CREATE TABLE test.bar 
(
 `date` Date,
 `created` DateTime,
 `value` Int32
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/bar', '{replica}')
PARTITION BY date
ORDER BY value
SETTINGS index_granularity = 8192

И получаем такую
[zk: localhost:2181(CONNECTED) 6] get /clickhouse/tables/1/bar/metadata
metadata format version: 1
date column:
sampling expression:
index granularity: 8192
mode: 0
sign column:
primary key: value
data format version: 1
partition key: date
granularity bytes: 10485760

Видим что поле date column пустое. Изначальный кейс - хотим явно задавать index_granularity_bytes, но в старом синтаксисе не можем.
источник

AE

Alexey Er in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
нет, не поэтому. КХ не знает синтаксис mysql / pg/ informix/ mssql и не знает умеют они limit или нет
Ну, синтаксис MySQL он в целом знает. Это же не JDBC какой, а "нативный" протокол, встроенный в Кликхаус.
источник