Size: a a a

ClickHouse не тормозит

2020 May 28

VB

Vladimir Bunchuk in ClickHouse не тормозит
Ребят, привет!
Во время большого запроса получаю ошибку по мемори лимиту, хотя max_memory_usage стоит 50Gb
В чем может быть проблема?

DB::Exception: Memory limit (for query) exceeded: would use 37.43 GiB (attempt to allocate chunk of 268435456 bytes), maximum: 37.25 GiB.
источник

OM

Oleksii Mylotskyi in ClickHouse не тормозит
Dmitry Titov
вообще идеальное решение, это вы на стороне приложения знаете, какие данные куда класть.
Или допустим пользуетесь кафкой и топиками.
потому что дистрибьютед вставка умножает запись в 1.5-2 раза(сначала в дистрибьютед и только потом на нужный шард)
а, ок, я понял.
А  подскажите что если у меня уже отстает второй шард, могу ли я просто из папки дистрибьютед таблицы удалить *.bin файлы которые отправляются удалить и данные перевставить в этот шард ? или нужны будут манипуляции в ZK ?
источник

ДМ

Дмитрий Мищенко... in ClickHouse не тормозит
Подскажите а можно как-то узнать сколько весит 1 день или 1 партиция данных в байтах?
источник

DT

Dmitry Titov in ClickHouse не тормозит
Дмитрий Мищенко
Подскажите а можно как-то узнать сколько весит 1 день или 1 партиция данных в байтах?
да, из таблицы system,parts;
источник

S

Shazo in ClickHouse не тормозит
В таблице system.parts есть по партам. Там суммируете нужные.
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleksii Mylotskyi
а, ок, я понял.
А  подскажите что если у меня уже отстает второй шард, могу ли я просто из папки дистрибьютед таблицы удалить *.bin файлы которые отправляются удалить и данные перевставить в этот шард ? или нужны будут манипуляции в ZK ?
можно, но скорее всего желательно остановить сервер/детачкнуть таблицу
источник

DT

Dmitry Titov in ClickHouse не тормозит
Oleksii Mylotskyi
а, ок, я понял.
А  подскажите что если у меня уже отстает второй шард, могу ли я просто из папки дистрибьютед таблицы удалить *.bin файлы которые отправляются удалить и данные перевставить в этот шард ? или нужны будут манипуляции в ZK ?
>или нужны будут манипуляции в ZK
У тебя же реплицируются таблицы с движком MergeTree, но до них данные еще не долетели
источник

mc

mikhail chubukov in ClickHouse не тормозит
Привет,

Хочу создать поле в MergeTree load_date Date MATERIALIZED today()
Да еще и партиционировать по нему.

Насколько рабочий и не тупой вариант?)
источник

S

Shazo in ClickHouse не тормозит
Можно же обычное поле с DEFAULT наверное, иначе на * же мат поля не выводятся к примеру.
источник

DT

Dmitry Titov in ClickHouse не тормозит
mikhail chubukov
Привет,

Хочу создать поле в MergeTree load_date Date MATERIALIZED today()
Да еще и партиционировать по нему.

Насколько рабочий и не тупой вариант?)
INSERT SELECT * не будет работать нормально
источник

DT

Dmitry Titov in ClickHouse не тормозит
вариант с дефолтом лучше. да
источник

MP

Mike Po in ClickHouse не тормозит
Господа нужен совет, есть табличка MergeTree

PARTITION BY (toYYYYMM(EventDate), EventId) 
ORDER BY (EventId, EventDate)


пытаюсь ее скопировать с помощью clickhouse-copier, он делает выборку из таблицы со следующим условием:

WHERE (toYYYYMM(EventDate), EventId) = ((201906, 'SGP') AS partition_key)


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

DT

Dmitry Titov in ClickHouse не тормозит
Mike Po
Господа нужен совет, есть табличка MergeTree

PARTITION BY (toYYYYMM(EventDate), EventId) 
ORDER BY (EventId, EventDate)


пытаюсь ее скопировать с помощью clickhouse-copier, он делает выборку из таблицы со следующим условием:

WHERE (toYYYYMM(EventDate), EventId) = ((201906, 'SGP') AS partition_key)


В итоге получается фулскан огромной таблицы, что можно сделать чтобы он читал только нужную партицию?
а сколько различных EventId?
источник

S

Shazo in ClickHouse не тормозит
Обычное поле, но указав для него DEFAULT https://clickhouse.tech/docs/ru/sql-reference/statements/create/#create-default-values
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mike Po
Господа нужен совет, есть табличка MergeTree

PARTITION BY (toYYYYMM(EventDate), EventId) 
ORDER BY (EventId, EventDate)


пытаюсь ее скопировать с помощью clickhouse-copier, он делает выборку из таблицы со следующим условием:

WHERE (toYYYYMM(EventDate), EventId) = ((201906, 'SGP') AS partition_key)


В итоге получается фулскан огромной таблицы, что можно сделать чтобы он читал только нужную партицию?
вообще должен сработать PARTITION ELIMINATION, в логах проверял?
источник

mc

mikhail chubukov in ClickHouse не тормозит
Спасибо!
источник

MP

Mike Po in ClickHouse не тормозит
Dmitry Titov
а сколько различных EventId?
около 50
источник

DC

Denny Crane (I don't... in ClickHouse не тормозит
Mike Po
Господа нужен совет, есть табличка MergeTree

PARTITION BY (toYYYYMM(EventDate), EventId) 
ORDER BY (EventId, EventDate)


пытаюсь ее скопировать с помощью clickhouse-copier, он делает выборку из таблицы со следующим условием:

WHERE (toYYYYMM(EventDate), EventId) = ((201906, 'SGP') AS partition_key)


В итоге получается фулскан огромной таблицы, что можно сделать чтобы он читал только нужную партицию?
вы туплы сравниваете. Надо отдельно поля
источник

DT

Dmitry Titov in ClickHouse не тормозит
Mike Po
около 50
PARTITION BY (toYYYYMM(EventDate), EventId) 
ORDER BY (EventId, EventDate)



Кстати
EventId
в ORDER BY вообще тогда не нужен
Но вообще странное партицирование
источник

MP

Mike Po in ClickHouse не тормозит
Denny Crane (I don't work at Yandex (never did))
вы туплы сравниваете. Надо отдельно поля
ну clickhouse-copier  так делает, не уверен что его можно заставить под другому ((
источник