Я изучаю Кассандру более 2 недель, чтобы иметь полное представление о том же. Я прочитал почти всю паутину о Кассандре и до сих пор не понял некоторых концепций. Ниже приведены следующие: -Проблемы с синхронизацией данных Cassandra
Согласно документации: - Мы моделируем наши семьи колонн согласно нашим запросам. Следовательно, нам нужно знать наши запросы заранее, что совсем не возможно в сценарии реального мира. У нас может быть определенный набор запросов, которые все время меняются со временем. Следовательно, если бы я разработал модель, основанную на моих предыдущих запросах, то после появления нового требования я должен перепроектировать модель. И как прочитано над одной нитью SO Очень сложно исправить плохую модель данных Cassandra в будущем. Для Eg: - Я бы а user
модели, имеющие поля сказать
name, age,phone,imei,address, state,city,registration_type, created_at
В настоящее время, мне нужно фильтровать (позволяет говорить) только state
. Я сделаю ПК как state
. Позволяет назвать модель UserByState
. Теперь через 2-3 месяца я пришел с требованием фильтрации по created_at
. Теперь я создам модель UserByCreatedAt
с ПК как created_at
.
Сейчас есть 2 проблемы: -
а) Если я создаю новую модель, когда требование приходит, то мне нужно перенести данные в новую модель, т.е. если я создаю новую модель, я необходимо также иметь предыдущие данные в текущей модели. Поэтому мне нужно перенести данные с UserByState
на UserByCreatedAt
, то есть мне нужно написать сценарий для копирования данных с UserByState
в UserByCreatedAt
. Исправьте меня, если я ошибаюсь !!!
Если возникает другое новое требование фильтрации, я буду создавать новые модели, а затем переносить и так далее.
b) Для создания моделей перед обработкой в соответствии с запросами мне необходимо синхронизировать данные, то есть в приведенном выше примере «Пользователи», я создал 2 модели для 2 запросов.
UserByState
и UserByCreatedAt
Так что мне нужно применить 2 разных запросов записи ??, т.е.
UserByState.create(row = value,......)
UserByCreatedAt.create(row = value,......)
И если я имею другие модели, такие как 'UserByGender' и так далее. мне нужно применять разные запросы на запись к разным моделям MANUALLY или это происходит само по себе ??? Возникает проблема сохранения данных в синхронизации.