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

Всем привет. У меня есть Клик непервой свежести (20.5.2.7), но неплохо

работающий. В нём понадобилось заменить несколько строк на другие. И оказалось, что старые строки не удаляются.

alter table track delete where te_id=89602012;
select te_id from track where te_id=89602012 format TSV;

89602012

1 rows in set.

Тактическое выжидание, установка mutations_sync=2, OPTIMIZE не помогли.

Поле te_id типа Int64, входит в ключ:
ENGINE = ReplicatedReplacingMergeTree()
PARTITION BY h_month
ORDER BY (p_id, h_at, te_id)

В system.mutations все записи is_done (на обеих репликах):
mutation_id: 0000000011
command: DELETE WHERE te_id = 89602012
create_time: 2022-07-04 10:51:21
block_numbers.partition_id: ['0','1283299200',..,'1680307200','1682899200','1685577600']
block_numbers.number: [12,15,...,18,132,32]
parts_to_do: 0
is_done: 1
latest_fail_time: 0000-00-00 00:00:00
latest_fail_reason:

В system.merges пусто.

В чём может быть дело?

11 ответов

9 просмотров

это баг, и даже хуже, скорее всего alter table портит таблицу. Вам надо апгрейдится хотя бы до 20.8

кстати как имена партов выглядели до мутации и после? (mutation_version)?

Alexeyer-Er Автор вопроса
Denny [Altinity]
это баг, и даже хуже, скорее всего alter table пор...

Спасибо! (Не буду сылаться на "а раньше работало", баг есть баг.)

Alexeyer-Er Автор вопроса
Denny [Altinity]
кстати как имена партов выглядели до мутации и пос...

Вроде, примерно такие же остались. Вот было в parts_to_do_names: '1546300800_251_251_0_256', '1546300800_252_252_0_256', '1546300800_254_254_0_256', ... Сейчас в system.parts: 1546300800_0_0_0_17469 1546300800_1_252_216_17469 1546300800_254_254_0_258 1546300800_259_259_0 1546300800_260_260_0 1546300800_261_261_0 (и соответствующие data_version: 17469, 17469, 258, 259, 260, 261)

Alexeyer Er
Вроде, примерно такие же остались. Вот было в par...

это Replicated таблица? вы делали attach partition ? или восстанавливали из бекапа? странно что разные версии

Alexeyer-Er Автор вопроса
Denny [Altinity]
это Replicated таблица? вы делали attach partition...

Да, таблица ReplicatedReplacingMergeTree. Восстанавливать её приходилось после обнуления Кипера. На одной реплике аттачить все парты, на другой удалять и ждать перезаливки. Но парты вроде как должны оставаться прежнеми сразу после этого.

Alexeyer Er
Да, таблица ReplicatedReplacingMergeTree. Восстана...

при attach не сбрасывается _version в 0 и теперь у вас мутации просто пропускают эти парты потому что mutation_id logpointer меньше чем _version. типа они заработают после того как вы сделаете alter table delete 17 тыс. раз. (_17469) https://github.com/ClickHouse/ClickHouse/issues/18804

Alexeyer-Er Автор вопроса
Denny [Altinity]
при attach не сбрасывается _version в 0 и теперь у...

Хм, а селекты всё равно читают такие парты из будущего?

Alexeyer-Er Автор вопроса
Denny [Altinity]
да. Version нужен только мутациям

Спасибо. Значит, всегда остаётся опция перелить в другую таблицу селектом.

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

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

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann ٩( 💢•̀ з•́)و Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта