Size: a a a

ClickHouse не тормозит

2021 February 20

DT

Dmitry Titov in ClickHouse не тормозит
KiLEX 萊赫
по моим наблюдениям дубльдельта сильно лучше оказался как раз на несортированных данных
А если их отсортировать?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Виктор
А где про кодеки почитать? Первый раз их вижу
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Dmitry Titov
А если их отсортировать?
а вот это не пробовал))) поэтому и хочу аргументы услышать
источник

В

Виктор in ClickHouse не тормозит
У меня по умолчанию сервер настроен на zstd, для datetime имеет смысл указать codec(delta,zstd)?
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Mishanya
возможно, я понял вашу идею, но зачем добавлять время в ключ сортировки в самое начало ? если добавить его в конце будет побольше профита же
там в начало добавляется дата, что мне показалось даже неплохой идеей если выборки идут за несколько дней а партиции по месяцам
источник

DT

Dmitry Titov in ClickHouse не тормозит
Виктор
У меня по умолчанию сервер настроен на zstd, для datetime имеет смысл указать codec(delta,zstd)?
Delta не сжимает, сжимает именно ZSTD дельта это скажем так encoding
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Виктор
У меня по умолчанию сервер настроен на zstd, для datetime имеет смысл указать codec(delta,zstd)?
при комбинировании DoubleDelta с сжимальщиками я результата не увидел (меньше не стало) а выборки стали медленнее
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
я пробовал
(ZSTD)
(DoubleDelta, ZSTD)
(Delta, ZSTD)
(DoubleDelta)
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mishanya
возможно, я понял вашу идею, но зачем добавлять время в ключ сортировки в самое начало ? если добавить его в конце будет побольше профита же
В начало мы добавляем не сам таймстамп, а дату из него, допустим у вас часто идут запросы за последние 7 дней, но кардинальность host,http_host слишком большая и кликхаус не сможет использовать timestamp в конце ORDER BY для того что бы выбрать гранулы относящиеся к временному промежутку
источник

M

Mishanya in ClickHouse не тормозит
KiLEX 萊赫
там в начало добавляется дата, что мне показалось даже неплохой идеей если выборки идут за несколько дней а партиции по месяцам
ну кстати да, возможно так лучше)
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Mishanya
ну кстати да, возможно так лучше)
я даже попробую. @unamedrus спасибо за идею!
источник

В

Виктор in ClickHouse не тормозит
Dmitry Titov
В начало мы добавляем не сам таймстамп, а дату из него, допустим у вас часто идут запросы за последние 7 дней, но кардинальность host,http_host слишком большая и кликхаус не сможет использовать timestamp в конце ORDER BY для того что бы выбрать гранулы относящиеся к временному промежутку
Это кстати даст профит, если подключить КХ к графане, там обычно за последний день максимум выборка
источник

M

Mishanya in ClickHouse не тормозит
Dmitry Titov
В начало мы добавляем не сам таймстамп, а дату из него, допустим у вас часто идут запросы за последние 7 дней, но кардинальность host,http_host слишком большая и кликхаус не сможет использовать timestamp в конце ORDER BY для того что бы выбрать гранулы относящиеся к временному промежутку
я так понимаю, это если использовать выборки, если ВСЕГДА есть дата. А вот когда нужно будет выбрать where host = ‘qwe’ то будут вопросы, верно ?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Только не забывайте что если у вас кардинальность host, http_... невысокая. то кх ровно аналогичным образом сможет использовать timestamp в конце ордер бай для отсечения гранул
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mishanya
я так понимаю, это если использовать выборки, если ВСЕГДА есть дата. А вот когда нужно будет выбрать where host = ‘qwe’ то будут вопросы, верно ?
кардинальность дат небольшая, так что кх сможет использовать вторую колонку из ORDER BY достаточно эффективно
источник

M

Mishanya in ClickHouse не тормозит
Dmitry Titov
кардинальность дат небольшая, так что кх сможет использовать вторую колонку из ORDER BY достаточно эффективно
мы говорим про datetime, но не date. Кардинальности datetime очень высока же
источник

DT

Dmitry Titov in ClickHouse не тормозит
И да, если вы используете ORDER BY toDate(ts), host, ...., ts то, в запросе вам нужно будет писать WHERE toDate(ts) > toDate('some_date_time') AND ts > some_date_time
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mishanya
мы говорим про datetime, но не date. Кардинальности datetime очень высока же
речь идет когда у нас ORDER BY toDate(ts), host, ..., ts
источник

M

Mishanya in ClickHouse не тормозит
Dmitry Titov
речь идет когда у нас ORDER BY toDate(ts), host, ..., ts
Да, тут понятно, почему будет лучше, спасибо!
а если взять кейс, про дейтайм, в начала сувать его не оч хорошо ведь, верно ?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mishanya
Да, тут понятно, почему будет лучше, спасибо!
а если взять кейс, про дейтайм, в начала сувать его не оч хорошо ведь, верно ?
Задачи разные, в некоторых случаях это может быть оправдано

Надо понимать зачем что то было сделано :)
источник