Size: a a a

ClickHouse не тормозит

2021 January 25

S

Slach in ClickHouse не тормозит
Alex Vorobiev
речь идёт не о полноценном джойне, а выборе строки по айдишнику. на уровне приложения открывается страница сущности, которая лежит в mysql и там же делается поиск по айдишнику в кх
clickhouse не предназначен для выбора ОДНОЙ СТРОКИ по IDшнику

как минимум выборка WHERE UUID IN ...
и она будет медленная, потому что у вас UUID это рандомная величина
всю таблицу надо будет сканировать
чтобы выбрать

как вы в MySQL узнаете какой UUID должен получиться "в другой сущности"?
источник

r

rasstroen in ClickHouse не тормозит
Slach
если версия clickhouse 20.5+
то можно профайлинг для памяти включить ненадолго
https://github.com/Slach/clickhouse-flamegraph/blob/master/docker/clickhouse/profiling.xml
и посмотреть куда память тратится
20.4 ) смотрю конфигурации не нахожу про память ничего,  как будто кх просто жрёт всё что есть
источник

r

rasstroen in ClickHouse не тормозит
Может его ребутнуть и он поймёт что появился буфер и ему надо памяти
источник

S

Slach in ClickHouse не тормозит
rasstroen
20.4 ) смотрю конфигурации не нахожу про память ничего,  как будто кх просто жрёт всё что есть
источник

K

KiLEX 萊赫 in ClickHouse не тормозит
Alex Vorobiev
кликхауз - некоторые события (мероприятия) в мире, их там очень много с разными параметрами. у нас таблица с обзорами событий, их значительно меньше и хочется иметь ссылку на общий перечень событий
а какой порядок кол-ва строк в таблице мероприятий (клик) и какой в таблице обзоров (мускуль)?
источник

S

Slach in ClickHouse не тормозит
Alex Vorobiev
кликхауз - некоторые события (мероприятия) в мире, их там очень много с разными параметрами. у нас таблица с обзорами событий, их значительно меньше и хочется иметь ссылку на общий перечень событий
очень много это сколько? миллиард?
источник

AV

Alex Vorobiev in ClickHouse не тормозит
Slach
clickhouse не предназначен для выбора ОДНОЙ СТРОКИ по IDшнику

как минимум выборка WHERE UUID IN ...
и она будет медленная, потому что у вас UUID это рандомная величина
всю таблицу надо будет сканировать
чтобы выбрать

как вы в MySQL узнаете какой UUID должен получиться "в другой сущности"?
ну естественно предполагалось, что эта колонка будет проиндексирована. ну хорошо, а выбор одной строки по 2 колонкам, образующим уник это тоже не корректный юзкейс?

ну мы можем по определённым колонкам выбрать из кх те строки, для которых будет связанная сущность в мускуле и просто по очереди с ними работать
источник

r

rasstroen in ClickHouse не тормозит
Almost all the restrictions only apply to SELECT.
источник

AV

Alex Vorobiev in ClickHouse не тормозит
KiLEX 萊赫
а какой порядок кол-ва строк в таблице мероприятий (клик) и какой в таблице обзоров (мускуль)?
в клике 200М, порядка 10М новых в неделю. у себя 60к на данный момент
источник

r

rasstroen in ClickHouse не тормозит
Падают инсерты в буфер) вот где он тотал памяти себе насчитал непонятно
источник

M

Mishanya in ClickHouse не тормозит
Alex Vorobiev
ну естественно предполагалось, что эта колонка будет проиндексирована. ну хорошо, а выбор одной строки по 2 колонкам, образующим уник это тоже не корректный юзкейс?

ну мы можем по определённым колонкам выбрать из кх те строки, для которых будет связанная сущность в мускуле и просто по очереди с ними работать
индексы тут не такие как в мускуле, btree не посторишь
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Slach
у вас на INSERT вылетает ошибка с аллокацией памяти?

а как вы INSERT делаете? в каком формате?
есть два вида инсертов, стриминговые (память аллоцируется пропорционально кол-ву вставляемых столбцов и дальше потоковый парсинг) и statement (когда перед тем как вставить надо весь SQL распарсить в память)

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

S

Slach in ClickHouse не тормозит
rasstroen
Almost all the restrictions only apply to SELECT.
ну остается только на 20.8 перейти и профайлинг  включить
источник

S

Slach in ClickHouse не тормозит
Alexey Sokolov
Если не затруднит, можете ссылкой в меня кинуть где об этом почитать?
ищите в этом чате сообщения @den_crane кажется он про это говорил
источник

r

rasstroen in ClickHouse не тормозит
источник

r

rasstroen in ClickHouse не тормозит
30G свободных
источник

r

rasstroen in ClickHouse не тормозит
то есть теореически или в буфера падает больше 30 гигов
источник

r

rasstroen in ClickHouse не тормозит
или хз, проверю
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Mike E.
точнее, значения из /etc/metrika.xml (хотя пишет, что использовал его при негерации)
https://github.com/ClickHouse/ClickHouse/pull/18740

просто в config верните include_from = /etc/metrika.xml

точнее              <networks incl="networks" replace="replace">
источник

AS

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

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

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

Хорошие инсерты обрабатываются стрим парсером и могут быть любого бесконечного размера, если стрим парсер видит функцию -- например now он переключается на ast парсер , ast парсер ждет конца запроса и складывает запрос в буфер. Буфер по умолчанию -- 256kb
Денис, а есть где почитать поподробнее?

Например, toDate() тоже сразу переключает парсер в режим ast?
источник