Size: a a a

ClickHouse не тормозит

2020 July 08

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
Спасибо! Но у меня сейчас похоже нет выбора. Либо OPTIMIZE TABLE либо SELECT … FROM t FINAL. Последний работает в 10 раз медленнее.
какая версия ClickHouse? там FINAL недавно распаралелили
https://github.com/ClickHouse/ClickHouse/pull/10463
в 20.5 должно было попасть
источник

s

serge in ClickHouse не тормозит
Подтверждаю, FINAL стал работать значительно быстрее
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Еще к OPTIMIZE TABLE - а он ведь работает асинхронно? (Ну или по крайней мере должен работать, как я понимаю). Пытаюсь запустить его с в clickhouse-client и мне приходит Timeout exceeded while reading from socket, а я ожидал, что он возьмет и просто спланирует мержи, а потом будет их выполнять (т.е. быстро отцепится от сокета и скажет ОК 🙂 ).
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
20.3.3
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
Еще к OPTIMIZE TABLE - а он ведь работает асинхронно? (Ну или по крайней мере должен работать, как я понимаю). Пытаюсь запустить его с в clickhouse-client и мне приходит Timeout exceeded while reading from socket, а я ожидал, что он возьмет и просто спланирует мержи, а потом будет их выполнять (т.е. быстро отцепится от сокета и скажет ОК 🙂 ).
нет, он не работает асинхронно

но скорее всего ваш запрос остался в system.processes
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
Еще к OPTIMIZE TABLE - а он ведь работает асинхронно? (Ну или по крайней мере должен работать, как я понимаю). Пытаюсь запустить его с в clickhouse-client и мне приходит Timeout exceeded while reading from socket, а я ожидал, что он возьмет и просто спланирует мержи, а потом будет их выполнять (т.е. быстро отцепится от сокета и скажет ОК 🙂 ).
повторю еще раз =)
OPTIMIZE TABLE .. FINAL
это только на "небольших" таблицах по паре гигабайтов
и только ручками, а не на регулярной основе

иначе SELECT .. FINAL
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Спасибо за помощь, но это очень печально, т.к. у меня ~13TB 🙂
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Но кажется мои дубликаты могут быть локализованы в 2 partitions, попробую OPTIMIZE TABLE … PARTITION
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
Но кажется мои дубликаты могут быть локализованы в 2 partitions, попробую OPTIMIZE TABLE … PARTITION
13TB точно НЕ НАДО вы будете полностью вычитывать это 13 терабайт и часть еще от них потом еще и писать
сделайте KILL QUERY на ваш заброс
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
show processlist пуст
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
show processlist пуст
в system.query_log поглядите исполнился ли он или нет
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
хм, DB::Exception: Table system.query_log doesn't exist..
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
хм, DB::Exception: Table system.query_log doesn't exist..
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
посмотрел по логам - вышло по таймауту
источник

S

Slach in ClickHouse не тормозит
Oleksiy Golovko
посмотрел по логам - вышло по таймауту
ну ок =) тогда опитмизируйте партиции...
источник

OG

Oleksiy Golovko in ClickHouse не тормозит
Slach
ну ок =) тогда опитмизируйте партиции...
Тем и живы 🙂 Спасибо! А как скоро я должен увидеть что-то от OPTIMIZE в system.merges? И единственное ли это место в котором я могу посмотреть, что что-то вообще происходит (кроме процессов)?
источник

S

Slach in ClickHouse не тормозит
хмм... вроде system.parts_log еще можно посмотреть если настроено

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

S

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

Н

Николай in ClickHouse не тормозит
Доброе утро, вопрос может не в тему, больше по запросам, но может кто сталкивался, есть таблица со списком комментариев/отзывов, есть ли способ как-то сгруппировать их по похожести, т.е. по частоте вхождения одинаковых слов в каждое поле, если так можно сказать. Задача проанализировать отзывы, но сначала нужно бы их как-то сгруппировать
источник

AB

Armen Babajanyan in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
select empid, deptid, salary, salaries[1] salary_max_over_dep,  rank
from (
  SELECT deptid, groupArray(empid) AS empids, groupArray(salary) AS salaries
  FROM (SELECT * FROM employee ORDER BY deptid ASC, salary DESC)
  group by deptid )
array Join empids as empid, salaries as salary, arrayEnumerateDense(salaries) as rank
order by deptid, rank


┌─empid─┬─deptid─┬───salary─┬─salary_max_over_dep─┬─rank─┐
│     1 │     10 │  5500000 │             5500000 │    1 │
│     2 │     10 │  4500000 │             5500000 │    2 │
│     4 │     20 │  4800000 │             4800000 │    1 │
│     3 │     20 │  1900000 │             4800000 │    2 │
│     7 │     40 │ 44500000 │            44500000 │    1 │
│     6 │     40 │ 14500000 │            44500000 │    2 │
│     5 │     40 │  6500000 │            44500000 │    3 │
│     9 │     50 │  7500000 │             7500000 │    1 │
│     8 │     50 │  6500000 │             7500000 │    2 │
└───────┴────────┴──────────┴─────────────────────┴──────┘

скорее всего ранк считает неправильно, но в гисте тоже так
спасибо! то, что нужно)
источник