Size: a a a

ClickHouse не тормозит

2021 January 13

DT

Dmitry Titov in ClickHouse не тормозит
devzenno
Здравствуйте, подскажите, пожалуйста, по структуре БД в кликхаусе - есть достаточно простая структура данных:

{дата}, {строка1}, {строка2}, {…} , {строка 11}

Выборка будет производится в основном  с учетом полей «дата», «строка1» и подстроки из «строка2».

Возможны также перекрестные запросы с участием практически всех полей.

Есть ещё один момент – поле «строка1» имеет ограниченное количество вариантов, 15 млн., если точнее. Потом оно повторяется, даты и остальные строки при этом разные.

Насколько правильным будет залить всё это счастье просто в одну таблицу? Или, возможно, есть какие-то другие варианты, более оптимальные?
В целом нормально, если есть некая локальность значений можно поле строка1 даже в lowCardinality обернуть
источник

d

devzenno in ClickHouse не тормозит
о, благодарствую за ответы! А то заливать почти 6ТБ данных, не хотелось бы потом перезаливать заново...
источник
2021 January 14

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Добрый вечер, не подскажите возможно ли выделить больше ресурсов на операции Преобразования типов? Ситуация следущая есть объемный топик, на него смотрит mv и соотвественно скидывает в табличку, если в mv не преобразовывать string в datetime например, то лаг не накапливаться, как только прикручиваю преобразования, то начинает копиться лаг :(
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Трофимов
Добрый вечер, не подскажите возможно ли выделить больше ресурсов на операции Преобразования типов? Ситуация следущая есть объемный топик, на него смотрит mv и соотвественно скидывает в табличку, если в mv не преобразовывать string в datetime например, то лаг не накапливаться, как только прикручиваю преобразования, то начинает копиться лаг :(
да ну, не верю. Дело скорее не в этом
и сколько миллиардов записей в секунду?
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
500 mbs 310к eps
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Трофимов
500 mbs 310к eps
и сколько параметр consumers.. у kafka?
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
и сколько параметр consumers.. у kafka?
24 ноды по 3 консьюмера
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Трофимов
24 ноды по 3 консьюмера
что? какие ноды? вы о чем вообще?

у kafka engine что в
kafka_num_consumers
kafka_thread_per_consumer
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
и сколько параметр consumers.. у kafka?
По пропускной способности, рекомендации с гитхаба, выставлены
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Трофимов
По пропускной способности, рекомендации с гитхаба, выставлены
ну и сколько? что там у вас?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
вам надо распалеллить обработку
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
что? какие ноды? вы о чем вообще?

у kafka engine что в
kafka_num_consumers
kafka_thread_per_consumer
72 партиции на топике, считываю 24 нодами(серверами в кластере , по 3 консьюмера на каждой, пихаю в mergetree таблицу без репликации
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
ставьте
kafka_num_consumers=10
kafka_thread_per_consumer=1
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
ставьте
kafka_num_consumers=10
kafka_thread_per_consumer=1
Thread не пробовал менять, завтра затестирую
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Игорь Трофимов
Thread не пробовал менять, завтра затестирую
без него все 10 консьюмеров будут в 1 CPU
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
короче

в профиль пользователя default background_processing_pool_thread=30

в кафка таблицу kafka_num_consumers=10 kafka_thread_per_consumer=1
источник

ИТ

Игорь Трофимов... in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
короче

в профиль пользователя default background_processing_pool_thread=30

в кафка таблицу kafka_num_consumers=10 kafka_thread_per_consumer=1
Попробую, background_processing_pool стоит и так уже 32, попробую thread_per_consumer добавить должно помочь
источник

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
это тогда плохой инсерт. Он не стримабл.

надо убрать now из инсерта и написать now где-нибудь в дефолтах таблицы.

Плохие инсерты должны влезать в max_query_size он 256кб.

Хорошие инсерты обрабатываются стрим парсером и могут быть любого бесконечного размера, если стрим парсер видит функцию -- например now он переключается на ast парсер , ast парсер ждет конца запроса и складывает запрос в буфер. Буфер по умолчанию -- 256kb
при вставке КХ-клиентом очень большого куска (чтоб партов меньше было) с формат TabSeparated КХ сервер отвалился с ошибкой по памяти.
DB::Exception: Memory limit (total) exceeded: would use 57.01 GiB (attempt to allocate chunk of 4295098416 bytes), maximum: 56.92 GiB (version 20.8.9.6 (official build))


кусок весь должен помещаться в память? или это тоже "плохой" инсерт?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Dj
при вставке КХ-клиентом очень большого куска (чтоб партов меньше было) с формат TabSeparated КХ сервер отвалился с ошибкой по памяти.
DB::Exception: Memory limit (total) exceeded: would use 57.01 GiB (attempt to allocate chunk of 4295098416 bytes), maximum: 56.92 GiB (version 20.8.9.6 (official build))


кусок весь должен помещаться в память? или это тоже "плохой" инсерт?
>кусок весь должен помещаться в память
да должен, сортируется в памяти, потом пишется на диск
источник

D

Dj in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
>кусок весь должен помещаться в память
да должен, сортируется в памяти, потом пишется на диск
ок, спасибо
источник