Size: a a a

ClickHouse не тормозит

2021 February 05

s

serge in ClickHouse не тормозит
Всем привет!
У меня есть таблица с одним полем по которой нужно проверять входит поле в этот список или нет.
Как этот фукционал лучше реализовать?
Eсть ли Replicated Join Engine?
источник

S

Slach in ClickHouse не тормозит
Lazoreth
Если логически подумать - можно вообще выкинуть count(*) и просто писать еденицу. По идее работать должно
нет, если прилетит в разных INSERT одинаковый toDate() +port_id
то у вас будет 2
а автор хочет чтобы было 1?

или что?
источник

S

Slach in ClickHouse не тормозит
serge
Всем привет!
У меня есть таблица с одним полем по которой нужно проверять входит поле в этот список или нет.
Как этот фукционал лучше реализовать?
Eсть ли Replicated Join Engine?
почитайте про CREATE DICTIONARY и dictGet
источник

s

serge in ClickHouse не тормозит
Slach
почитайте про CREATE DICTIONARY и dictGet
это уже в проде ))
список большой не хочется его в память грузить
источник

L

Lazoreth in ClickHouse не тормозит
Slach
нет, если прилетит в разных INSERT одинаковый toDate() +port_id
то у вас будет 2
а автор хочет чтобы было 1?

или что?
В исходную таблицу каждую минуту делается запись с datetime штампом. Изза избыточности у нас в исходной таблице на какой-то срок может возникнуть 5 одинаковых записей. Которые потом исходной таблицей сожмутся в одну. Вот мне нужна одна, что бы я в другой таблице просуммировал колличество таких записей после сжатия за сутки
источник

L

Lazoreth in ClickHouse не тормозит
А, ну да. Колличество инсертов ведь всё равно >1
источник

AB

Artur Beglaryan in ClickHouse не тормозит
Lazoreth
В исходную таблицу каждую минуту делается запись с datetime штампом. Изза избыточности у нас в исходной таблице на какой-то срок может возникнуть 5 одинаковых записей. Которые потом исходной таблицей сожмутся в одну. Вот мне нужна одна, что бы я в другой таблице просуммировал колличество таких записей после сжатия за сутки
У вас там в МатВью не должно быть ORDER BY (date, uuid, ip_address) ?
источник

L

Lazoreth in ClickHouse не тормозит
Artur Beglaryan
У вас там в МатВью не должно быть ORDER BY (date, uuid, ip_address) ?
Я команду косо обрезал при копипасте, там по факту полей сильно больше
источник

S

Slach in ClickHouse не тормозит
serge
это уже в проде ))
список большой не хочется его в память грузить
большой это сколько?
И какого типа поле...
словарь на миллион элементов UInt64 в памяти будет занимать 10 мегабайт
источник

AB

Artur Beglaryan in ClickHouse не тормозит
Lazoreth
Я команду косо обрезал при копипасте, там по факту полей сильно больше
Вам только AggregatingMergeTree поможет мне кажется.
источник

L

Lazoreth in ClickHouse не тормозит
Artur Beglaryan
Вам только AggregatingMergeTree поможет мне кажется.
Да, очень похоже на то
источник

AB

Artur Beglaryan in ClickHouse не тормозит
Lazoreth
Да, очень похоже на то
Вам надо чтобы за день была максимум одна запись?
источник

S

Slach in ClickHouse не тормозит
Lazoreth
А, ну да. Колличество инсертов ведь всё равно >1
обычная SummingMergeTree
без MATVIEW
и crontab раз в сутки
в котором будет
INSERT INTO summing_table ... SELECT ... FROM main_table FINAL WHERE toDate(date)=toDate(now()) GROUP BY ...
источник

L

Lazoreth in ClickHouse не тормозит
Artur Beglaryan
Вам надо чтобы за день была максимум одна запись?
Мне нужно колличество записей в исходной таблице за сутки
источник

L

Lazoreth in ClickHouse не тормозит
Я просто до последнего надеялся избежать запуска каких-то записей по расписанию
источник

L

Lazoreth in ClickHouse не тормозит
Но видимо никак
источник

AB

Artur Beglaryan in ClickHouse не тормозит
Lazoreth
Мне нужно колличество записей в исходной таблице за сутки
Тогда предыдущее сообщение или AggregatingMergeTree
источник

L

Lazoreth in ClickHouse не тормозит
Ладно. Большое спасибо за помощь
источник

s

serge in ClickHouse не тормозит
Slach
большой это сколько?
И какого типа поле...
словарь на миллион элементов UInt64 в памяти будет занимать 10 мегабайт
Спасибо! сейчас 50M записей
Такой размер устраивает! попробую словарь из одного поля собрать
источник

S

Slach in ClickHouse не тормозит
serge
Спасибо! сейчас 50M записей
Такой размер устраивает! попробую словарь из одного поля собрать
ну и фильтровать соответсвенно
SELECT ... WHERE dictGetOrDefault('db.dict','attribute',tuple(your_field),0) = 0
источник