e.displayText() = DB::Exception: Missing columns: 'some_column' while processing query ...
Перед дропом этой колонки в describe table не было. На двух остальных репликах мутации прошли отлично. На проблемной мутация тоже прошла(is_done 1), но в replication_queue висит mutate_part.
Смотрел метадаты и колонки в зукипере, всё совпадает, там нет ни дропнутой колонки, ни той, которую он потерял на проблемной реплике.
Что можно сделать?
вылезла ошибка на что? select ?
На mutate_part в last_exception и latest_fail_reason в system.mutations.
Я посмотрел в parts_columns, там действительно есть эта колонка, которой нет в описании таблицы и зукипере. Можно ли как-то из парта удалить её?
я бы попробовал detach table / attach table
3Тб партишн, к сожалению, очень плохо, но это как крайний вариант. Плюс ещё места маловато, когда аттачить будем, то детачед кусок придётся удалять. В таком случае надо как-то прибивать эту зависшую mutate_part? Через зукипер, например.
вы чего-то неправильно поняли, я таблицу а не парт предлагаю
По этому парту видно, что он какой-то особенный, потому что когда на соседних уровень мёржа уже 16, то этот так и висит на первом. Плюс если глянуть в system.parts_columns по этому парту, то как раз там указана эта проблемная колонка, которую он не может найти. Плюс осталась та колонка которую дропали. Спасибо за помощь!!! Будем пробовать детач атач.
как выглядит имя парта? _16 это не уровень мержа я думаю, это уровень мутации
т.е. это баг про компактные парты похоже, последнее число это номер мутации
А можете ещё пояснить заодно как name формируется? Даты, номер мутации, и ещё 3 числа каких-то.
как у таблицы движек написан?
ReplicatedMergeTree.
дальше что? скобки и т.д.
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/rawlog_shard', '{replica}', d_event_date, (id_publisher, id_zone, id_placement, id_ad_unit, id_advertiser, id_campaign, id_banner, id_landing), 8192)
блин, это старый синтаксис, я думал для них не работают compact парты
Обсуждают сегодня