Size: a a a

ClickHouse не тормозит

2021 March 15

ВА

Василий Аверьянов... in ClickHouse не тормозит
Всем привет! Такой вопрос по удалению дубликатов из таблицы. Планировал такой алгоритм:

1) Скопировать distinct записи во временную таблицу
2) Удалить все дублирующиеся записи из оригинальой таблицы - ALTER .. DELETE ... GROUP BY id HAVING count() > 1  
3) Скопировать записи из временной таблицы обратно в оригинальную.

Но при ALTER .. DELETE WHERE id IN (select id from test GROUP BY id HAVING count() > 1) наткнулся на такое поведение, что кликхаус удаляет не все записи с одинаковым id. E.g. в таблице было 2 записи с id = 1, а после alter delete осталась 1. Поскольку это не ожидаемое поведение, решил обратится сюда за помощью! Спасибо!
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Ребята - мне на собеседовании задали вопрос - оценить в терминах O-большое - сложность запроса в КХ вида : select user_id, count() from hits group by user_id/ Ответил O(log(n)) - скорее всего неправильно/ В сети информация противоречивая , например сложность группировки по версии вики - О(n)  -  те линейная/ Но это же не так - пофиг на n - запрос выполняется приблизительно одинаковое время вне зависимости от количества записей. А сын говорит - в любой непонятной ситуации - ставь O(n) : ))) Есть у кого какие мысли ?
источник

SC

Smoked Cheese in ClickHouse не тормозит
Rodion Gorbachev
Ребята - мне на собеседовании задали вопрос - оценить в терминах O-большое - сложность запроса в КХ вида : select user_id, count() from hits group by user_id/ Ответил O(log(n)) - скорее всего неправильно/ В сети информация противоречивая , например сложность группировки по версии вики - О(n)  -  те линейная/ Но это же не так - пофиг на n - запрос выполняется приблизительно одинаковое время вне зависимости от количества записей. А сын говорит - в любой непонятной ситуации - ставь O(n) : ))) Есть у кого какие мысли ?
Ну кликхаус будет читать все данные, так что O(n)
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Smoked Cheese
Ну кликхаус будет читать все данные, так что O(n)
Но он будет читать все данные и при быстрой сортировке например/ Однако ее сложность O(n*log(n)) - разве нет ?
источник

SC

Smoked Cheese in ClickHouse не тормозит
O(n*log(n)) это больше чем O(n), не вижу противоречия
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Tagir Gumerov
Хм, смотря что именно вам нужно замерить. Если только кафка читателя, то можно на пустой ноде кх создать KafkaEngine, mv и Engine=Null. И да, включить, подождать уменьшения лага, замерить. Выключить, замерить.
С тестовым сервером проблемы, поэтому взял один из боевых слабонагруженных серверов (есть другие периодические записи\слияния), добавил таблицу с движком Kafka на 4 консьюмера, повесил на неё MV, включил поток примерно 15000 записей в секунду и смотрю top для процесса clickhouse-serv:
%MEM и VIRT - вообще не меняются,
%CPU - продолжает меняться в тех же диапазонах, что и до кафки,
RES - продолжает меняться в диапазоне +- 0.3g

Выходит, что поток в 15к записей в секунду движок Kafka читает вообще практически бесплатно или я не туда смотрю?
источник

GM

Gennady Maslov in ClickHouse не тормозит
Rodion Gorbachev
Но он будет читать все данные и при быстрой сортировке например/ Однако ее сложность O(n*log(n)) - разве нет ?
Возможно стоило уточнить как отсортированы данные в таблице, если уже по user_id то O(n) т.к. для агрегации достаточно далее просто пройтись по данным
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Smoked Cheese
O(n*log(n)) это больше чем O(n), не вижу противоречия
В целом - да - это так. Но блин - что-то не так с расчетом этой сложности ))
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Gennady Maslov
Возможно стоило уточнить как отсортированы данные в таблице, если уже по user_id то O(n) т.к. для агрегации достаточно далее просто пройтись по данным
нет - данные не отсортированы по user_id - это поле атрибутное для таблицы хитов.
источник

SC

Smoked Cheese in ClickHouse не тормозит
просто подумай - что кликхаусу нужно сделать чтобы получить данные для запроса? что для count, что для group by нужно только прочитать все строки
источник

D

Dj in ClickHouse не тормозит
Rodion Gorbachev
Ребята - мне на собеседовании задали вопрос - оценить в терминах O-большое - сложность запроса в КХ вида : select user_id, count() from hits group by user_id/ Ответил O(log(n)) - скорее всего неправильно/ В сети информация противоречивая , например сложность группировки по версии вики - О(n)  -  те линейная/ Но это же не так - пофиг на n - запрос выполняется приблизительно одинаковое время вне зависимости от количества записей. А сын говорит - в любой непонятной ситуации - ставь O(n) : ))) Есть у кого какие мысли ?
O(n), при группировке используются хеши т.е. не увеличивают сложность. а то что там отсортировано или нет, только дает возможность стримить результат раньше и меньше памяти можно пользовать. но O такая же...
источник

RG

Rodion Gorbachev in ClickHouse не тормозит
Smoked Cheese
просто подумай - что кликхаусу нужно сделать чтобы получить данные для запроса? что для count, что для group by нужно только прочитать все строки
Спасибо Иван - скорее всего ты прав . Мне нужно просто с этим смириться ))
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Damien
Всем привет!
Столкнулся с проблемой: после перезагрузки Clickhouse при первом обращении к модели catboost через SELECT modelEvaluate - запрос зависает. После отмены запроса и повторного запуска запрос отрабатывает корректно. Очень похоже на issue трёхлетней давности https://github.com/ClickHouse/ClickHouse/issues/13832
Можете помочь, может кто-то сталкивался и фиксил?
Добрый день!
Удалось побороть?
источник

s

ssv in ClickHouse не тормозит
Привет) подскажите банальность - как лучше хранить фиксированную по длине последовательность BYTE?
источник

DT

Dmitry Titov in ClickHouse не тормозит
ssv
Привет) подскажите банальность - как лучше хранить фиксированную по длине последовательность BYTE?
FixedString
источник

D

Damien in ClickHouse не тормозит
Vladimir Bunchuk
Добрый день!
Удалось побороть?
Добрый день! Нет
источник

s

ssv in ClickHouse не тормозит
Dmitry Titov
FixedString
Там мугут быть x00x01  например
источник

DT

Dmitry Titov in ClickHouse не тормозит
ssv
Там мугут быть x00x01  например
Ну и что?
в FixedString можно что угодно хранить
источник

s

ssv in ClickHouse не тормозит
И  порежется значит
источник

VB

Vladimir Bunchuk in ClickHouse не тормозит
Damien
Добрый день! Нет
хех
жаль

а вообще используете катбуст в бою?
источник