Size: a a a

ClickHouse не тормозит

2020 July 01

DT

Dmitry Titov in ClickHouse не тормозит
Oleksandr Forostianyi
Простите, говорилось о мат вью уже, да. Проблема в том что данных 600+ миллионов а выбрать надо по сути последние 100 с limit  + order by....
покажите ORDER BY таблицы и ORDER BY запроса (можно просто написать a,b,c главное что бы одинаковые колонки совпадали по имени)
источник

OF

Oleksandr Forostiany... in ClickHouse не тормозит
Table ORDER BY (ID1, ID2, TIME)

Query ORDER BY TIME DESK
источник

OF

Oleksandr Forostiany... in ClickHouse не тормозит
В итоге без ORDER BY  запрос выполняется 0.2сек, а с ним 60+сек
источник

DT

Dmitry Titov in ClickHouse не тормозит
ORDER BY ID1,ID2,TIME DESC будет выполнятся тоже быстро, но это скорее всего совсем не то, что вам нужно.

А можно весь запрос?

Конечно можно создать MV c ORDER BY (TIME,ID1,ID2)
но выглядит over kill немного
источник

BB

Bral Bral in ClickHouse не тормозит
Dmitry Titov
ORDER BY ID1,ID2,TIME DESC будет выполнятся тоже быстро, но это скорее всего совсем не то, что вам нужно.

А можно весь запрос?

Конечно можно создать MV c ORDER BY (TIME,ID1,ID2)
но выглядит over kill немного
TIME же третье по счету стоит у него, это разве не влияет существенно ?
источник

BB

Bral Bral in ClickHouse не тормозит
Bral Bral
TIME же третье по счету стоит у него, это разве не влияет существенно ?
А сортировать хочет только по TIME
источник

OF

Oleksandr Forostiany... in ClickHouse не тормозит
Т.е. порядок ордера влияет, хм, можно попробовать будет. Запрос полностью не могу сейчас, уже дома
источник

DT

Dmitry Titov in ClickHouse не тормозит
Bral Bral
TIME же третье по счету стоит у него, это разве не влияет существенно ?
А это вопрос. как там дефолтно идет сортировка ASC или DESC, если ASC, то нужно будет писать ID1 DESC, ID2 DESC, TIME DESC оно будет медленее, чем ID1, ID2, TIME но быстрее, чем не по индексу.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Bral Bral
А сортировать хочет только по TIME
Ну вдруг там такой запрос, что это не важно.
Но если нужны честные последние 100 TIME, то вариантов особо нет кроме MV
источник

D

Dj in ClickHouse не тормозит
Bral Bral
TIME же третье по счету стоит у него, это разве не влияет существенно ?
зависит от кардинальности ID1 и ID2, по хорошему. Но судя по тому что они так называются, кардинальность высокая.

лучше MV по TIME DESC.
если можно менять таблицу, то можно попробовать TIME, ID1, ID2 если ID достаточно сильно уникальны и разбросаны ваши обычные запросы не должны сильно пострадать.
источник

OF

Oleksandr Forostiany... in ClickHouse не тормозит
Спасибо большое за советы, завтра буду пробовать 👍
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Oleksandr Forostianyi
Table ORDER BY (ID1, ID2, TIME)

Query ORDER BY TIME DESK
>Table ORDER BY (ID1, ID2, TIME)
>Query ORDER BY TIME DESK

а покажите целиком запрос?

в КХ очень наивно сейчас сделано, т.е. если
Table ORDER BY (ID1, ID2, TIME)
то
Query ORDER BY ID1 DESC, ID2 DESC, TIME DESC
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
КХ "не видит" что у вас в запросе where id1 = ? and id2=? (что сортировать по ним не нужно)
источник

OF

Oleksandr Forostiany... in ClickHouse не тормозит
О как... понял
источник

Р

Роман in ClickHouse не тормозит
Добрый вечер! Подскажите как правильно использовать каскадные MV. Сейчас при использовании mv1->mv2 ->anyTable1 данные в mv2 не попадают. Движок везде MergeTree, простые селекты без группировок. Версия CH 20.4.x.x.  MV созданы через populate.
источник

DS

Daniil S. in ClickHouse не тормозит
Роман
Добрый вечер! Подскажите как правильно использовать каскадные MV. Сейчас при использовании mv1->mv2 ->anyTable1 данные в mv2 не попадают. Движок везде MergeTree, простые селекты без группировок. Версия CH 20.4.x.x.  MV созданы через populate.
from делается по underlying таблице mv1 или по самой mv1?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Роман
Добрый вечер! Подскажите как правильно использовать каскадные MV. Сейчас при использовании mv1->mv2 ->anyTable1 данные в mv2 не попадают. Движок везде MergeTree, простые селекты без группировок. Версия CH 20.4.x.x.  MV созданы через populate.
каскадирование работает, только если имя стораджа неявное у MV то у второго надо from ".inner.первое_mv"
источник

Р

Роман in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
каскадирование работает, только если имя стораджа неявное у MV то у второго надо from ".inner.первое_mv"
Спасибо. А в случае создания через TO, inner таблица тоже существует?
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Роман
Спасибо. А в случае создания через TO, inner таблица тоже существует?
нет конечно
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
to и есть та таблица
источник