Size: a a a

ClickHouse не тормозит

2020 July 12

SC

Smoked Cheese in ClickHouse не тормозит
ну а мержи собственно происходят не всегда и не сразу
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Smoked Cheese
так и задумано, надо либо в запросе домерживать, либо использовать select final
А как в запросе домерживать?
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
optimize final какой-то попросить?
источник

SC

Smoked Cheese in ClickHouse не тормозит
для AMT достаточно group by в запрос добавить
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
GROUP BY был в запросе при создании представления
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Вот я и удивляюсь, что я вижу повторы по значению колонки, по которой я делал GROUP BY
источник

DS

Daniil S. in ClickHouse не тормозит
В документации же написано, При выборке данных из таблицы AggregatingMergeTree, используйте GROUP BY и те же агрегатные функции, что и при вставке данных, но с суффиксом -Merge.
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Спасибо, а то я смотрю в книгу и вижу фигу
источник

SC

Smoked Cheese in ClickHouse не тормозит
просто КХ агрегирует данные в AMT в пределах одного парта
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Да, логично
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Спасибо!
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
А что будет, если я напишу выражение, использующее агрегатные функции? Типа maxState(a) - maxState(a)? Такое будет работать?
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Наверное стоит сделать два столбца, а вычислять уже при выборке?
источник

SC

Smoked Cheese in ClickHouse не тормозит
не будет работать
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Да, я вроде наконец уловил как это работает
источник

SC

Smoked Cheese in ClickHouse не тормозит
стейты можно только мержить (складывать)
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Спасибо большое!
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Ребята подскажите плизз.
У меня есть макро транзакция у нее есть transaction_ID во внутрь макро транзакции включено различное количество микро транзакций каждая из которых имеет transaction_ID такой же как и у макро транзакции. Мне нужно посчитать в MV уникальное количество транзакций за период. Если я использую uniqExactMerge работает отлично, то что мне нужно. Но на большом объеме она просто вечно выполняется.

Тогда я попробовал сделать чтобы MV выбирал через GROUP BY transaction_ID, и использую sumMerge соответственно данные очень не точные получаются так как куски на которые выполняется SELECT могут соответственно содержать как макро транзакцию так и микро, в итоге GROUP BY будет возвращать правду только в рамках куска, а в итоге сумма будет не валидной.

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

Или может какие другие варианты ?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Konstantin Malanchev
Добрый день!

Подскажите, насколько нормально такое поведение Materialized View на AggregatingMergeTree и можно ли что-то с этим сделать?

Я создал пустую таблицу table и материализованное представление view на ней с GROUP BY x. Дальше добавляю данные в table, данные появляются во view, но с небольшим числом повторов строк с одинаковым x, не похоже, что они собираются когда-то слиться, прошел день, а они все там
Таблица в mv живет отдельно и не знает что в нее вставляют из mv и был выполнен какой-то select. Мержится (а все вычисления в ней происходят в момент слияния кусков и просто результат пишется в новый кусок) таблица на основании ее order by.
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksii Mylotskyi
Ребята подскажите плизз.
У меня есть макро транзакция у нее есть transaction_ID во внутрь макро транзакции включено различное количество микро транзакций каждая из которых имеет transaction_ID такой же как и у макро транзакции. Мне нужно посчитать в MV уникальное количество транзакций за период. Если я использую uniqExactMerge работает отлично, то что мне нужно. Но на большом объеме она просто вечно выполняется.

Тогда я попробовал сделать чтобы MV выбирал через GROUP BY transaction_ID, и использую sumMerge соответственно данные очень не точные получаются так как куски на которые выполняется SELECT могут соответственно содержать как макро транзакцию так и микро, в итоге GROUP BY будет возвращать правду только в рамках куска, а в итоге сумма будет не валидной.

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

Или может какие другие варианты ?
Раз в сутки пересчитывать (без mv) по сырым данным и писать готовые числа в таблицу.
Или считать в etl в mysql/cassandra/... до заливки в кх
источник