184 похожих чатов

Нужно хранить данные минимум за месяц, Каждый день получается по

20-24 parts, даже 2 недели я упираюсь в too many parts при конфигк в 300. Проблема в том как сделать 10 parts за день из 20-22. В документации я видела только min_part_size и min_part_size_ration, и что по умолчанию размер любой таблицы максимум 150 Gb, Можно управлять максимальным размером part? Как узнать что если PARTITION BY DATE то должно получаться 10 part-ов за день? INSERT максимум 16 в минуту блоками по 10k - 100K записей CSV файл, это собирается в таблице BUFFER у которой макс размер и тайм-ауты подобраны так чтобы данные копились 10-15 мин

9 ответов

13 просмотров

ваша ошибка тут - "PARTITION BY date" а должно быть "PARTITION BY toYYYYMM(date)". Почему так - вам Денни достаточно подробно рассказал.

А у вас ошибка какая? Если “Too many parts (300). Merges are processing significantly slower than inserts” то возможно вы просто слишком часто вставляете мелкими пачками. PARTITION BY date тут не причём

Konstantin Ilchenko
А у вас ошибка какая? Если “Too many parts (300). ...

почему не причем если partition by date а вставка за неделю то на одну вставку 7 активных партов создается...

Natalya-Sugako Автор вопроса
Konstantin Ilchenko
А у вас ошибка какая? Если “Too many parts (300). ...

Использую таблицу ENGINE = Buffer('default', 'pre_buffer', 16, 300, 1500, 50000, 500000, 150000000, 200000000). С такими параметрами данные собираются в течение 10-15 минут в ней. В буфер - 32 операции INSERT в минуту для больших CSV файлов. Для нас если иногда потеряются данные - ничего страшного

Slach [altinity]
почему не причем если partition by date а вставка ...

ну если сразу одним инсертом за месяц вставлять то да(

Konstantin Ilchenko
ну если сразу одним инсертом за месяц вставлять то...

ну если 7 инсертов каждый отдельная дата одновременно тоже будет 7 партов 10 запросов в секунду и уже 70 активных партов...

Natalya-Sugako Автор вопроса
Slach [altinity]
почему не причем если partition by date а вставка ...

Если бы. По 20+ active parts за предыдущие дни и по 10..70 active parts за сегодня. И iowait под 50% в рабочие часы. Медленные диски, возможности сменить дисковую полку нет. Пишутся логи в риал тайме от кучи машин, 32 пишущих модуля

Slach [altinity]
ну если 7 инсертов каждый отдельная дата одновреме...

так ошибка же падает если число партов в 1 партиции больше parts_to_throw_insert насколько я понимаю, тоесть если мы делаем 7 инсертов за разные даты, то они могут создавать по 100 партов каждый и всё будет ок. это не так?

300 партов это ограничение на партицию

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта