Size: a a a

ClickHouse не тормозит

2021 March 16

OA

Otta Alluba in ClickHouse не тормозит
/var/log/clickhouse-server.*
источник

OA

Otta Alluba in ClickHouse не тормозит
выставить только log level нужно максимальный
источник

OA

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

OA

Otta Alluba in ClickHouse не тормозит
там заодно и увидите происходит ли вообще вставка
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Otta Alluba
/var/log/clickhouse-server.*
Эх, туда доступа нет. Пришлось самому разбираться, но спасибо за инфу, как дадут доступ - посмотрю что там было.
источник

AS

Alexey Sokolov in ClickHouse не тормозит
Slach
какой Engine у таблицы?
вы уверены что вы в ту таблицу вставляете?
Движок верный, таблица тоже.

Разобрался - в исходной таблице Nullable поля, а вставляю я их в столбец типа Array(String). Не знаю почему ошибки не было, но coalesce() спас отца русской демократии.
источник

D

Danil in ClickHouse не тормозит
мне нужно сохранять в таблицу хекс-значения максимально компактно (FixedString). в запросах это значение прилетает как строка например 'a567c902fe869d'.

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

сейчас сделал дополнительную колонку как
FixedString(8) MATERIALIZED unhex(reinterpretAsString(hex_string))


но мне исходное значение в таблице не нужно вообще
источник

AK

Alexander Kurakin in ClickHouse не тормозит
Здравствуйте! А правильно же я понял, что конфиг кластера делается на одной "управляющей" ноде? Нам вот тут в организации конфиг кластера забили в каждую. Вот мне интересно, щито это будет...
источник

D

Danil in ClickHouse не тормозит
Danil
мне нужно сохранять в таблицу хекс-значения максимально компактно (FixedString). в запросах это значение прилетает как строка например 'a567c902fe869d'.

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

сейчас сделал дополнительную колонку как
FixedString(8) MATERIALIZED unhex(reinterpretAsString(hex_string))


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

AS

Alexey Sokolov in ClickHouse не тормозит
Danil
пока видится вариант вставки через временную таблицу, но это дополнительные расходы
Можно преобразовывать в инсёртящем запросе или вставлять в таблицу с движком Null, а на неё навесить MV, которое будет делать нужные преобразования.
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Alexander Kurakin
Здравствуйте! А правильно же я понял, что конфиг кластера делается на одной "управляющей" ноде? Нам вот тут в организации конфиг кластера забили в каждую. Вот мне интересно, щито это будет...
1. управляющей ноды нет
2. кластера в ch нет, есть независимые ноды
https://clickhouse.tech/docs/ru/engines/table-engines/special/distributed/
источник

IL

Igor Levdansky in ClickHouse не тормозит
Всем, привет, есть таблица с активностями: начало активности и ее длительность (в миллисекундах):
date DateTime,
duration UInt64
Хочу сделать агрегат по дням с самой ранней активность: min(date) и окончанием: max(date) + toUint64(argMax(duration, date) / 1000)

Как это можно записать в агрегате?
minState(date) start_date, -- тут понятно
maxState(date) + toUInt64(argMaxMerge(argMaxState(duration, date)) / 1000) end_date -- тут сложности
источник

D

Danil in ClickHouse не тормозит
Alexey Sokolov
Можно преобразовывать в инсёртящем запросе или вставлять в таблицу с движком Null, а на неё навесить MV, которое будет делать нужные преобразования.
А можете дать простой пример - я не понял к сожалению ((
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Danil
пока видится вариант вставки через временную таблицу, но это дополнительные расходы
Alexey уже ответил, хотел добавить почему ИМХО это хорошо
желательно лить в CH данные подготовленными, а вам в таблице hex не нужен
поэтому вы в начале можете сделать null + mv, а уже когда научитесь (если есть в планах) подготавливать данные, будете сразу в таблицу лить
источник

S

Slach in ClickHouse не тормозит
Alexey Sokolov
Движок верный, таблица тоже.

Разобрался - в исходной таблице Nullable поля, а вставляю я их в столбец типа Array(String). Не знаю почему ошибки не было, но coalesce() спас отца русской демократии.
я думаю было бы здорово сделать какой ниубдь минимально воспроизводимый пример
с двумя таблицами с одним полем
и сделать INSERT INTO ... SELECT

и сделать issue на github
потому что по идее ошибка точно должна быть
источник

S

Slach in ClickHouse не тормозит
Danil
мне нужно сохранять в таблицу хекс-значения максимально компактно (FixedString). в запросах это значение прилетает как строка например 'a567c902fe869d'.

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

сейчас сделал дополнительную колонку как
FixedString(8) MATERIALIZED unhex(reinterpretAsString(hex_string))


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

AK

Alexander Kurakin in ClickHouse не тормозит
"Кластеры задаются следующим образом:", дальше конфиг. На каком сервере/серверах его задавать?
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Alexander Kurakin
"Кластеры задаются следующим образом:", дальше конфиг. На каком сервере/серверах его задавать?
на всех
источник

IL

Igor Levdansky in ClickHouse не тормозит
Igor Levdansky
Всем, привет, есть таблица с активностями: начало активности и ее длительность (в миллисекундах):
date DateTime,
duration UInt64
Хочу сделать агрегат по дням с самой ранней активность: min(date) и окончанием: max(date) + toUint64(argMax(duration, date) / 1000)

Как это можно записать в агрегате?
minState(date) start_date, -- тут понятно
maxState(date) + toUInt64(argMaxMerge(argMaxState(duration, date)) / 1000) end_date -- тут сложности
Кажется перемудрил, так отработало argMaxState(date + toUInt64(duration/1000), date) end_date
источник

AK

Alexander Kurakin in ClickHouse не тормозит
Tagir Gumerov
на всех
хммммммм. а я тут читал https://ruhighload.com/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5+%D1%85%D1%80%D0%B0%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85+%D0%B2+clickhouse, "На отдельном сервере (с которого будем слать запросы) настроим кластер, который указывает на сервера-шарды." и работало. Но, видимо, имеется в виду, что на всех- чтобы отовсюду слать запросы можно было
источник