Size: a a a

ClickHouse не тормозит

2020 May 28

R

Renat in ClickHouse не тормозит
lnuynxa
ну возможно, можно сделать GROUP BY по всем-всем  полям и оставить только те записи где HAVING sum(Sign) > 0 но выглядит криво
спасибо! идея понятна. схлопывать все пары состояний +1/-1, чтобы оставить только последнюю запись... такой ручной мерджинг а-ля FINAL.
звучит, и правда, странно. но попробую сравнить, что получится : )
источник

DT

Dmitry Titov in ClickHouse не тормозит
Renat
спасибо! идея понятна. схлопывать все пары состояний +1/-1, чтобы оставить только последнюю запись... такой ручной мерджинг а-ля FINAL.
звучит, и правда, странно. но попробую сравнить, что получится : )
звучит достаточно затратно в плане потребляемой памяти на хранение всех колонок в хешмапе для групбая
или рискнуть и делать GROUP BY cityHash64(id,value,value) тогда меньше занимает, но колизии, да
источник

DT

Dmitry Titov in ClickHouse не тормозит
вообще возможно если есть допустим timestamp, то попробовать что то вроде argMax
либо ORDER BY id, timestamp DESC LIMIT 1 BY id
возможно будет быстрее
источник

R

Renat in ClickHouse не тормозит
Dmitry Titov
вообще возможно если есть допустим timestamp, то попробовать что то вроде argMax
либо ORDER BY id, timestamp DESC LIMIT 1 BY id
возможно будет быстрее
да, спасибо, тоже думал про argMax.
но тогда проще сразу в ReplacingMergeTree - там агрегация через version в виде того же timestamp.

вариант с LIMIT BY интересный, попробую тоже.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Renat
да, спасибо, тоже думал про argMax.
но тогда проще сразу в ReplacingMergeTree - там агрегация через version в виде того же timestamp.

вариант с LIMIT BY интересный, попробую тоже.
да, если есть возможность заменить на ReplacingMergeTree, то тоже вариант.

Другое дело, что тебе всеравно придется писать запросы, как будто дубликаты могут быть
источник

SM

Sergey Mc in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
а можете показать из кх клиента строку со статистикой когда вы считаете sum по колонке
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Mc
у вас условие явно не используется правильно
источник

R

Renat in ClickHouse не тормозит
Dmitry Titov
да, если есть возможность заменить на ReplacingMergeTree, то тоже вариант.

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

вообще нужно сразу двух зайцев убить.
с одной стороны дергать плоский список уникальных записей с последними актуальными состояниями (тут удобнее Replacing).
с другой - нужны отчеты/сводки. тут не сильно удобнее, но зато быстрее Collapsing.

держать сразу два набора данных в разных движках не хочется. нужно пойти на компромисс выбрать что-то одно с обеспечением требуемого функционала.
источник

SM

Sergey Mc in ClickHouse не тормозит
Dmitry Titov
у вас условие явно не используется правильно
а что именно не так?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Mc
а что именно не так?
если бы сработал partition elimination, то не сканировалась бы вся таблица
было бы неск млрд записей просканировано
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Mc
а что именно не так?
partition by по End_time ?
источник

SM

Sergey Mc in ClickHouse не тормозит
да
источник

DT

Dmitry Titov in ClickHouse не тормозит
Переслано от Sergey Mc
PARTITION BY (toDate(END_TIME), RULEBASE)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Renat
да, группировка никуда не уйдет.

вообще нужно сразу двух зайцев убить.
с одной стороны дергать плоский список уникальных записей с последними актуальными состояниями (тут удобнее Replacing).
с другой - нужны отчеты/сводки. тут не сильно удобнее, но зато быстрее Collapsing.

держать сразу два набора данных в разных движках не хочется. нужно пойти на компромисс выбрать что-то одно с обеспечением требуемого функционала.
вообще нет ничего плохого хранить данные дважды-трижды-сколько нужно раз
источник

SM

Sergey Mc in ClickHouse не тормозит
Dmitry Titov
Переслано от Sergey Mc
PARTITION BY (toDate(END_TIME), RULEBASE)
т.е. в условие RULEBASE   добавить?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Sergey Mc
да
источник

DT

Dmitry Titov in ClickHouse не тормозит
Dmitry Titov
вообще нет ничего плохого хранить данные дважды-трижды-сколько нужно раз
у меня одна таблица хранится дважды, просто для разных ORDER BY
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
попробутйе условие без toDate Where END_TIME >= and END_TIME <=
источник

SM

Sergey Mc in ClickHouse не тормозит
а это разве не равнозначно что в условии будет  RULEBASE LIKE '%%'
источник

DT

Dmitry Titov in ClickHouse не тормозит
Sergey Mc
а это разве не равнозначно что в условии будет  RULEBASE LIKE '%%'
rulebase тут не причем
источник