Size: a a a

ClickHouse не тормозит

2021 March 26

СК

Саша Козлов... in ClickHouse не тормозит
нет. там между завершением инсерта и выдачей ошибки 0,003 секунды
и в это время к КХ точно никто не обращается
вот лог полнее
источник

СК

Саша Козлов... in ClickHouse не тормозит
2021.03.26 03:53:39.821266 [ 2282339 ] {} <Error> auto DB::IBackgroundJobExecutor::jobExecutingTask()::(anonymous class)::operator()() const: Code: 241, e.dis
playText() = DB::Exception: Memory limit (total) exceeded: would use 1.61 GiB (attempt to allocate chunk of 4205312 bytes), maximum: 1.61 GiB: (while reading
column ProfileEvent_PerfStalledCyclesBackend): (while reading from part /var/lib/clickhouse/store/4de/4de85eff-9550-4021-ac5b-11ead5ab8eb6/202103_174297_17684
7_510/ from mark 3 with max_rows_to_read = 4189): While executing MergeTreeSequentialSource, Stack trace (when copying this message, always include the lines
below):
источник

DN

Demetra Nadya in ClickHouse не тормозит
как файлы с БД перенести на другой SSD
источник

y

yaroslav in ClickHouse не тормозит
Подскажите, есть ли известные приемы оптимизации запроса по подсчету числа "новых" пользователей на сайте за период времени? Сейчас мы за период времени берем число уникальных пользователей и left джоиним с уникальными пользователями с всю предыдущую историю (работает долго):


select countDistinct(neww.user_id)
from
(select distinct user_id
from clicks
where click_time between '2021-03-25' and '2021-03-26'
) neww
left join
(select distinct user_id
from clicks
where click_time < '2021-03-25'
) oldd
where empty(oldd.user_id) = 1
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
yaroslav
Подскажите, есть ли известные приемы оптимизации запроса по подсчету числа "новых" пользователей на сайте за период времени? Сейчас мы за период времени берем число уникальных пользователей и left джоиним с уникальными пользователями с всю предыдущую историю (работает долго):


select countDistinct(neww.user_id)
from
(select distinct user_id
from clicks
where click_time between '2021-03-25' and '2021-03-26'
) neww
left join
(select distinct user_id
from clicks
where click_time < '2021-03-25'
) oldd
where empty(oldd.user_id) = 1
SELECT user_id FROM clicks GROUP BY user_id HAVING min(click_time)) between '2021-03-25' and '2021-03-26'
источник

y

yaroslav in ClickHouse не тормозит
Konstantin Sevastianov
SELECT user_id FROM clicks GROUP BY user_id HAVING min(click_time)) between '2021-03-25' and '2021-03-26'
Костя, спасибо за идею!
источник

KS

Konstantin Sevastian... in ClickHouse не тормозит
или если это регулярно надо делать, то можно создать MV которая будет хранить user_id, min(click_time) и ходить уже в эту таблицу
источник

y

yaroslav in ClickHouse не тормозит
Да, как раз уже идем в этом направлении
источник

DG

Danila Ganchar in ClickHouse не тормозит
всем привет.

с питонячим clickhouse-driver кто-нибудь сталкивался с таким? может знаете как обходить?

click.execute(
   'SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name',
   {'dc': 'ED'},
)

.../clickhouse_driver/client.py", line 564, in substitute_params
   return query % escaped
ValueError: unsupported format character 'Y' (0x59) at index 36
источник

ИК

Иван Кривошеев... in ClickHouse не тормозит
Danila Ganchar
всем привет.

с питонячим clickhouse-driver кто-нибудь сталкивался с таким? может знаете как обходить?

click.execute(
   'SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name',
   {'dc': 'ED'},
)

.../clickhouse_driver/client.py", line 564, in substitute_params
   return query % escaped
ValueError: unsupported format character 'Y' (0x59) at index 36
Так тут проблема в питоне, а не в драйвере
источник

S

Slach in ClickHouse не тормозит
Саша Козлов
2021.03.26 03:53:39.821266 [ 2282339 ] {} <Error> auto DB::IBackgroundJobExecutor::jobExecutingTask()::(anonymous class)::operator()() const: Code: 241, e.dis
playText() = DB::Exception: Memory limit (total) exceeded: would use 1.61 GiB (attempt to allocate chunk of 4205312 bytes), maximum: 1.61 GiB: (while reading
column ProfileEvent_PerfStalledCyclesBackend): (while reading from part /var/lib/clickhouse/store/4de/4de85eff-9550-4021-ac5b-11ead5ab8eb6/202103_174297_17684
7_510/ from mark 3 with max_rows_to_read = 4189): While executing MergeTreeSequentialSource, Stack trace (when copying this message, always include the lines
below):
вот этот вот BackgroundJobExecutor это к запросу отношения не имеет
там ниже stacktrace покажите его
источник

S

Slach in ClickHouse не тормозит
Demetra Nadya
как файлы с БД перенести на другой SSD
с остановкой сервера или без остановки сервера?
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Danila Ganchar
всем привет.

с питонячим clickhouse-driver кто-нибудь сталкивался с таким? может знаете как обходить?

click.execute(
   'SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name',
   {'dc': 'ED'},
)

.../clickhouse_driver/client.py", line 564, in substitute_params
   return query % escaped
ValueError: unsupported format character 'Y' (0x59) at index 36
Можно заменить ваш конкретный formatDateTime на toYYYYMM, только "-" потеряете
источник

ИК

Иван Кривошеев... in ClickHouse не тормозит
Danila Ganchar
всем привет.

с питонячим clickhouse-driver кто-нибудь сталкивался с таким? может знаете как обходить?

click.execute(
   'SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name',
   {'dc': 'ED'},
)

.../clickhouse_driver/client.py", line 564, in substitute_params
   return query % escaped
ValueError: unsupported format character 'Y' (0x59) at index 36
click.execute(
   '''SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name''',
   {'dc': 'ED'},
)
источник

DG

Danila Ganchar in ClickHouse не тормозит
Tagir Gumerov
Можно заменить ваш конкретный formatDateTime на toYYYYMM, только "-" потеряете
я так и делаю сейчас )
источник

S

Slach in ClickHouse не тормозит
Danila Ganchar
всем привет.

с питонячим clickhouse-driver кто-нибудь сталкивался с таким? может знаете как обходить?

click.execute(
   'SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name',
   {'dc': 'ED'},
)

.../clickhouse_driver/client.py", line 564, in substitute_params
   return query % escaped
ValueError: unsupported format character 'Y' (0x59) at index 36
вам тут ниже решение подсказали, попробуйте и если ОК. напишите это решение в issue на github который вы завели
источник

DG

Danila Ganchar in ClickHouse не тормозит
Иван Кривошеев
click.execute(
   '''SELECT formatDateTime(now(), '%Y-%m') AS year_month, %(dc)s AS name''',
   {'dc': 'ED'},
)
нет ((
источник

ИК

Иван Кривошеев... in ClickHouse не тормозит
Что пишет?
источник

DG

Danila Ganchar in ClickHouse не тормозит
а таже фигня ValueError: unsupported format character 'Y' (0x59) at index 31
источник

ИК

Иван Кривошеев... in ClickHouse не тормозит
Danila Ganchar
а таже фигня ValueError: unsupported format character 'Y' (0x59) at index 31
Ммм, а можно %%Y-%%m?
источник