Size: a a a

ClickHouse не тормозит

2020 September 09

DC

Denny Crane [not a Y... in ClickHouse не тормозит
и тупл не нужен

select * from (select 1 a,2 b) where (a,b) in ((1,2), (2,3))
┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
select * from (select 1 a,2 b union all select 2,3) where (a,b) in ((1,2), (2,3))
┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘
┌─a─┬─b─┐
│ 2 │ 3 │
└───┴───┘

select * from (select 1 a,2 b union all select 2,3) where (a,b) in ((1,2), (2,4))
┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘
источник

G

Grigory in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
select * from (select 1 a,2 b) where (a,b) in (tuple(1,2), tuple(2,3))
┌─a─┬─b─┐
│ 1 │ 2 │
└───┴───┘
Благодарю
Сейчас осознаю
источник

RN

Roman Neklesa in ClickHouse не тормозит
приветствую! подскажите, пожалуйста, возможный выход с данной ситуации. на сервере 24 ГБ оперативки. есть запрос с джоином таблицы самой на себя на 50 миллионов строк. упираюсь в лимит памяти при мердже. есть настройки клика для мерджа и сброса данных в таблицу пачками - чтобы не сгружать все в оперативку? пример инсерта

insert into sample_prc (id, perc_25,perc_50,perc_75)
select   t1.id,
        quantile(0.25)(t2.amount) as perc_25,
        quantile(0.50)(t2.amount) as perc_50,
        quantile(0.75)(t2.amount) as perc_75
from  sample t1
join  sample t2
on      t2.id = t1.id
where    t2.dt < t1.dt
and    toDate(t2.dt) = toDate(t1.dt)
group by t1.id
;
источник

RN

Roman Neklesa in ClickHouse не тормозит
Roman Neklesa
приветствую! подскажите, пожалуйста, возможный выход с данной ситуации. на сервере 24 ГБ оперативки. есть запрос с джоином таблицы самой на себя на 50 миллионов строк. упираюсь в лимит памяти при мердже. есть настройки клика для мерджа и сброса данных в таблицу пачками - чтобы не сгружать все в оперативку? пример инсерта

insert into sample_prc (id, perc_25,perc_50,perc_75)
select   t1.id,
        quantile(0.25)(t2.amount) as perc_25,
        quantile(0.50)(t2.amount) as perc_50,
        quantile(0.75)(t2.amount) as perc_75
from  sample t1
join  sample t2
on      t2.id = t1.id
where    t2.dt < t1.dt
and    toDate(t2.dt) = toDate(t1.dt)
group by t1.id
;
настройки драйвера
max_block_size=30;
max_bytes_before_external_group_by=1000000000;
max_bytes_before_external_sort=1000000000;
max_memory_usage=2000000000;
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Roman Neklesa
приветствую! подскажите, пожалуйста, возможный выход с данной ситуации. на сервере 24 ГБ оперативки. есть запрос с джоином таблицы самой на себя на 50 миллионов строк. упираюсь в лимит памяти при мердже. есть настройки клика для мерджа и сброса данных в таблицу пачками - чтобы не сгружать все в оперативку? пример инсерта

insert into sample_prc (id, perc_25,perc_50,perc_75)
select   t1.id,
        quantile(0.25)(t2.amount) as perc_25,
        quantile(0.50)(t2.amount) as perc_50,
        quantile(0.75)(t2.amount) as perc_75
from  sample t1
join  sample t2
on      t2.id = t1.id
where    t2.dt < t1.dt
and    toDate(t2.dt) = toDate(t1.dt)
group by t1.id
;
--join_algorithm arg    Specify join algorithm: 'auto', 'hash', 'partial_merge', 'prefer_partial_merge'. 'auto' tries to change HashJoin to MergeJoin on

я бы сказал кривой дизайн, не полетит,  откуда вообще необходимость в таком insert?
с чего вы решили что для 50млн это будет работать?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
max_block_size=30; -- очень качественный способ заставить КХ тормозить
источник

RN

Roman Neklesa in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
--join_algorithm arg    Specify join algorithm: 'auto', 'hash', 'partial_merge', 'prefer_partial_merge'. 'auto' tries to change HashJoin to MergeJoin on

я бы сказал кривой дизайн, не полетит,  откуда вообще необходимость в таком insert?
с чего вы решили что для 50млн это будет работать?
считаю перцентиль, беру пример с постгрес. max_block_size - какой оптимальный можно взять в моем случае?
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
>считаю перцентиль
это конечно все объяснило, еще можно было ответить покороче: "считаю"
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
max_block_size просто не надо трогать, оставить как есть 65501
источник

RN

Roman Neklesa in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
>считаю перцентиль
это конечно все объяснило, еще можно было ответить покороче: "считаю"
))
беру аналог функции percentile_disc
percentile_disc(0.50) within group (order by t2.amount) - так в ПГ
источник

PL

Pavel Larkin in ClickHouse не тормозит
Всем доброго вечера!
Вдруг кто-нибудь сталкивался с ошибкой DB::Exception: Inserting field of type String into ColumnAggregateFunction. Expected AggregateFunctionState.
Стала появляться на запросе (тут https://pastebin.com/bcRyAmbX) после обновления кликхауса до версии 19.13.1.11
источник

DC

Denny Crane [not a Y... in ClickHouse не тормозит
Pavel Larkin
Всем доброго вечера!
Вдруг кто-нибудь сталкивался с ошибкой DB::Exception: Inserting field of type String into ColumnAggregateFunction. Expected AggregateFunctionState.
Стала появляться на запросе (тут https://pastebin.com/bcRyAmbX) после обновления кликхауса до версии 19.13.1.11
что это за select ? это в MV такой?  или это ошибка при этом select ИЗ MV ?
источник

PL

Pavel Larkin in ClickHouse не тормозит
Denny Crane [not a Yandex bot]
что это за select ? это в MV такой?  или это ошибка при этом select ИЗ MV ?
Это запрос в Distributed таблицу над ReplicatedReplacingMergeTree таблицами
причем при обращении в ReplicatedReplacingMergeTree напрямую ошибок пока не ловится
источник

T🐜

The Ant 🐜 in ClickHouse не тормозит
ктонить подскажет какой примерно сервачок надо на 10-15кк реквестов дейли? тока инсерт.
источник

pk

papa karlo in ClickHouse не тормозит
это столько строк?
источник

T🐜

The Ant 🐜 in ClickHouse не тормозит
papa karlo
это столько строк?
20-30кк (за два дня).
Тут скорее в процессор упирается. На тестовых 100к 2-хядерная впска чот в потолок работает
источник

A

Artem in ClickHouse не тормозит
The Ant 🐜
ктонить подскажет какой примерно сервачок надо на 10-15кк реквестов дейли? тока инсерт.
У меня 520 млн. строк инсертов в сутки работает на бесплатном гугловом серваке с 600 МБ ОЗУ и 20% одного виртуального ядра.
источник

T🐜

The Ant 🐜 in ClickHouse не тормозит
Artem
У меня 520 млн. строк инсертов в сутки работает на бесплатном гугловом серваке с 600 МБ ОЗУ и 20% одного виртуального ядра.
как?!
источник

A

Artem in ClickHouse не тормозит
The Ant 🐜
как?!
Сам удивляюсь. Таблица не широкая. Всего 10 колонок + на нее навешена MV.
источник