METABYTE
К списку статей

Почему Cassandra не даёт менять тип колонки (и это фича, а не баг)

Cassandra отказывается менять тип колонки — и правильно делает, иначе бы вы сломали себе всё.

11 мая 20261 мин чтения
Почему Cassandra не даёт менять тип колонки (и это фича, а не баг)

Вы когда-нибудь пытались уговорить Cassandra изменить тип колонки? Спойлер: она не поддаётся. И это не баг, не каприз, а продуманная защита от вас самих.

Дело в том, что Cassandra — это распределённая база данных, где данные живут на разных узлах. Если бы вы могли просто взять и поменять тип колонки, то на одном узле данные могли бы оказаться в новом формате, а на другом — в старом. И начался бы цирк с конями: одни запросы читают число, другие — строку, и никто не понимает, что происходит.

Но есть лазейка: добавить новую колонку с нужным типом, а старую — удалить. Только учтите: удаление колонки в Cassandra — это не мгновенная операция, данные физически удаляются только во время compaction. Так что если вы решите "переименовать" колонку через удаление и создание, готовьтесь к временному бардаку.

Комментарий студии METABYTE: Мы тоже любим, когда наши данные строги и предсказуемы — особенно когда деплоим ночью. Если вам нужна помощь с проектированием схем для Cassandra или любой другой NoSQL, мы знаем, как обойти грабли без потери данных.

СЛЕДУЮЩИЙ ШАГ

Понравилось как мыслим?

Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.