Я новичок в Кассандре, и я прочитал, что Кассандра поощряет денормализацию и дублирование данных. Это меня немного смущает. Давайте представим себе следующий сценарий:Как обеспечить согласованность данных в Cassandra на разных таблицах?
У меня есть пространство ключей с четырьмя таблицами: A, B, C и D.
CREATE TABLE A ( tableID int, column1 int, column2 varchar, column3 varchar, column4 varchar, column5 varchar, PRIMARY KEY (column1, tableID) );
Давайте представим себе, что другие таблицы (B, C, D) имеют ту же структуру и те же данные, что и таблица A, только с другим первичным ключом, чтобы отвечать на другие запросы.
Если я обновляю строку в таблице A, как я могу обеспечить согласованность данных в других таблицах, имеющих одни и те же данные?
Будьте осторожны при движении по этой дороге, потому что материализованные представления обновляются асинхронно, что означает, что ваше приложение должно будет иметь возможность обрабатывать конечную согласованность. Подход к пакетной обработке позволяет обеспечить лучшую согласованность для этого типа проблем за счет сложности приложений. – awinder