Войти Регистрация
Data base

246. ALTER UPDATE во время загрузки заказов

Средняя

ClickHouse · ClickHouse 26.3

В разборе MergeTree от RWB мутации описаны коротко: они не атомарны, выполняются по порядку создания, не блокируют друг друга и не трогают строки, вставленные после запуска. Перед тем как полагаться на UPDATE в ClickHouse, это стоит знать наизусть.

В таблице orders (MergeTree, сотни кусков) продавца 42 заблокировали за подделки. В 14:00 аналитик запускает ALTER TABLE orders UPDATE status = 'cancelled' WHERE seller_id = 42. В это время загрузчик продолжает вставлять новые заказы этого продавца пачками раз в 10 секунд, а мутация идёт 20 минут.

В работе: Массовые исправления в аналитических таблицах: отмены, анонимизация, правка справочного поля.

Как проверяем Движка ClickHouse в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите все верные варианты (одна лишняя отметка допустима). После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
мутацииALTER UPDATEMergeTreeкуски

Источник: кейс Wildberries (RWB): основы MergeTree на практике, 2024. Условие пересказано своими словами.

Какие утверждения о мутации верны?

  • Пока мутация идёт, SELECT может увидеть часть заказов продавца уже отменёнными, а часть — ещё нет
  • Заказы, вставленные после 14:00, останутся со статусом new
  • Если сервер перезапустится в 14:10, мутация продолжится после старта
  • Вставки продавца 42 ждут, пока мутация закончится
  • Если мутация упадёт на половине, уже изменённые куски откатятся