Size: a a a

ClickHouse не тормозит

2020 May 26

S

Slach in ClickHouse не тормозит
Dmitry Pitik
Народ, всем привет, подскажите: в какой момент выполняется агрегация данных в materialized view на движке summingmergetree?
SELECT ... FINAL используйте, но оно аггрегирует в один поток
https://github.com/ClickHouse/ClickHouse/pull/10463
скоро будет в несколько
источник

MI

Marat Idrísov in ClickHouse не тормозит
Можно ли управлять тем, как часто будет выполняться дедупликация данных для ReplacingMergeTree?
источник

PS

Pavel Sayapin in ClickHouse не тормозит
Коллеги, кто-нибудь сталкивался с тем, что постоянно идёт ошиба Too many parts (300). Merges are processing significantly slower than inserts, но в таблице партиций немного (около 400) и пишется в неё редко?
источник

D

Denis in ClickHouse не тормозит
parts != partions
источник

И

Иван in ClickHouse не тормозит
Marat Idrísov
Можно ли управлять тем, как часто будет выполняться дедупликация данных для ReplacingMergeTree?
Можно (дедубликация выполняется во время мержей в таблице), но нужно ли? Дефолтные настройки мержей подходят в большинстве случаев. можно делать OPTIMIZE PARTITION FINAL для партиций в которые не идут уже новые инсерты и там данные задедублицируются принудительно, но, вероятно, для партиций в которые постоянно идут инсерты - это не лучшая идея
источник

MI

Marat Idrísov in ClickHouse не тормозит
Иван
Можно (дедубликация выполняется во время мержей в таблице), но нужно ли? Дефолтные настройки мержей подходят в большинстве случаев. можно делать OPTIMIZE PARTITION FINAL для партиций в которые не идут уже новые инсерты и там данные задедублицируются принудительно, но, вероятно, для партиций в которые постоянно идут инсерты - это не лучшая идея
Что можно сделать, чтобы не было дублей в партиции, в которую идут инсерты?
источник

И

Иван in ClickHouse не тормозит
Marat Idrísov
Что можно сделать, чтобы не было дублей в партиции, в которую идут инсерты?
Этого нельзя обеспечить - т.к. 1 инсерт - 1 парт минимум 1 парт в партиции который еще ни с чем не помержен. Можно на уровне запроса к такой таблице учитывать это и доагрегировать там
источник

PS

Pavel Sayapin in ClickHouse не тормозит
Denis
parts != partions
это понятно, но я к тому, что такая ошибка возникает, когда много партиций или когда часто пишется, но ни того ни другого нету
источник

И

Иван in ClickHouse не тормозит
Pavel Sayapin
это понятно, но я к тому, что такая ошибка возникает, когда много партиций или когда часто пишется, но ни того ни другого нету
ddl таблицы + описание типичного инсерта с его rps
источник

И

Иван in ClickHouse не тормозит
Marat Idrísov
Что можно сделать, чтобы не было дублей в партиции, в которую идут инсерты?
Также можно писать select ... From table FINAL (он на уровне каждого запроса будет сам делать всё что нужно, но может сильно зааффектить производительность таких запросов)
пару сообщений выше есть pullrequest об улучшении этого поведения
источник

MI

Marat Idrísov in ClickHouse не тормозит
Иван
Также можно писать select ... From table FINAL (он на уровне каждого запроса будет сам делать всё что нужно, но может сильно зааффектить производительность таких запросов)
пару сообщений выше есть pullrequest об улучшении этого поведения
Спасибо. Так и делаю, думал можно сделать это в диске тоже
источник

MI

Marat Idrísov in ClickHouse не тормозит
Конечно, есть CollapsingMergeTree, но там не все так просто, нужно самому управлять дублями
источник

И

Иван in ClickHouse не тормозит
Marat Idrísov
Конечно, есть CollapsingMergeTree, но там не все так просто, нужно самому управлять дублями
Он тоже не мгновенно схлопывает строчки! а точно так же как и replacing
источник

MI

Marat Idrísov in ClickHouse не тормозит
Иван
Он тоже не мгновенно схлопывает строчки! а точно так же как и replacing
Даже так!!!
источник

MI

Marat Idrísov in ClickHouse не тормозит
Думал как раз таки тут моментальная замена
источник

PS

Pavel Sayapin in ClickHouse не тормозит
create table queue_log
(
   callid    String,
   queuename String,
   agent     String,
   event     String,
   data1     String,
   data2     String,
   data3     String,
   data4     String,
   data5     String,
   time      DateTime,
   d         Date,
   data      String,
   ver       UInt64
)
   engine = MergeTree()
       PARTITION BY toYYYYMM(time)
       ORDER BY callid
       SETTINGS index_granularity = 8192;


Вставляем батчами где-то раз в 10 секунд.
источник

И

Иван in ClickHouse не тормозит
Marat Idrísov
Думал как раз таки тут моментальная замена
Это невозможно с точки зрения устройства движка, каждый новый инсерт порождает новый парт(а может и не 1) в партиции. ОН не читает другие парты во время инсертов. Поэтому не может делать это мгновенно, это хорошо описано в доке
источник

PS

Pavel Sayapin in ClickHouse не тормозит
Иван
ddl таблицы + описание типичного инсерта с его rps
Самое интересно ещё в том, что когда была версия КХ 20.1.3.7, то проблем не было, обновлились до 20.4.2.9 - начались
источник

И

Иван in ClickHouse не тормозит
Pavel Sayapin
create table queue_log
(
   callid    String,
   queuename String,
   agent     String,
   event     String,
   data1     String,
   data2     String,
   data3     String,
   data4     String,
   data5     String,
   time      DateTime,
   d         Date,
   data      String,
   ver       UInt64
)
   engine = MergeTree()
       PARTITION BY toYYYYMM(time)
       ORDER BY callid
       SETTINGS index_granularity = 8192;


Вставляем батчами где-то раз в 10 секунд.
Сколько разных callid и сколько строк всего в типовом инсерте
источник

PS

Pavel Sayapin in ClickHouse не тормозит
Иван
Сколько разных callid и сколько строк всего в типовом инсерте
select uniq(callid), count(*) from `10309_asteriskcdrdb`.queue_log

276278 1469584
источник