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

Всем привет. Экспериментирую с вставкой из Kafka (Kafka -> MaterializedView

-> MergeTree , по доке ).
Мне хочется, что бы данные поэнергичнее становились доступны для селектов. Так вот, не пойму, в какой момент данные мержатся в основную таблицу.
На Kafka таблице указал kafka_max_block_size = 20000; stream_flush_interval_ms - по умолчанию (7500).
Правильно ли я понимаю, что логика такая:
Консумер ждёт 7,5 секунд. Если это время прошло, либо до этого момента уже пришло 20000 сообщений (не записей) из кафки, то он отправляет эти данные на мерж. При этом если CH видит, что он ещё не перемержил предыдущую порцию, то CH сначала перемерживает между собой то, что нужно вставить, а уже потом перемерживает с основной таблицей. Так?
И ещё вопросы: Если я уменьшу max_insert_block_size, то у меня поэнергичнее будет мержиться в основную таблицу? Т.е. max_insert_block_size независим от потабличной kafka_max_block_size?
Где есть перечисление настроек, которые можно задавать потаблично (а то про kafka_max_block_size можно только в багтрекере прочитать, а не на clickhouse.yandex ).
Если я настрою: Kafka -> MaterializedView -> Distributed -> MergeTree , то у меня увеличится скорость появления данных в основной таблице?
И вообще, может где-то можно почитать про выделение железа под желательную нагрузку на CH?

1 ответов

19 просмотров

Kafka engine читает kafka_max_block_size пока не прочитает все нужное кол-во. Перекладывает их в свой буфер, в момент перекладывания проверяет stream_flush_interval_ms и max_insert_block_size и либо флашит его в таблицу либо нет.

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

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

а через 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
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта