Добрый день, уважаемое сообщество!
Ребята, пожалуйста помогите разобраться с проблемой.
Дано: Есть несколько больших таблиц ReplicatedMergeTree, в которые с помощью МВ переливаются данные из таблиц с Kafka движком.
и есть ещё одна таблица - t4 c движком MergeTree. В t4 начинаем перекачивать данные через jdbc коннектор батчами по 100 000 строк. Через некоторое время в логах КХ появляются сообщения вида:
<Error> DynamicQueryHandler: Code: 241, e.displayText() = DB::Exception: Memory limit (total) exceeded: would use 27.61 GiB (attempt to allocate chunk of 4197660 bytes)
После чего почти сразу в лог прилетают сообщения вида:
<Error> void DB::StorageKafka::threadFunc(): Code: 242, e.displayText() = DB::Exception: Table is in readonly mode, Stack trace (when copying this message, always include the lines below)
Опытным путём мы выяснили, что блочится не та таблица, в которую льются данные - t4, а самые большие по объёму таблицы ReplicatedMergeTree, в которые данные довольно не спешно переливаются из таблиц с Kafka движком.
Разблокировать таблицы получается только перезагрузкой clickhouse.
Почему таблицы переходят в readonly mode? И что можно сделать, чтобы этого избежать?