Я исследую, как моделировать данные, используя и Кассандру, и Ignite вместе.Пока что основная рекомендация моделирования данных в Cassandra (взятое из этой статьи ) ясна: «моделируйте данные вокруг ваших запросов».Автор приводит пример «поиска пользователя».Мы хотим искать пользователей по их имени пользователя или по электронной почте, и, по его словам, лучшим подходом было бы иметь две таблицы:
CREATE TABLE users_by_username (
username text PRIMARY KEY,
email text,
age int
)
CREATE TABLE users_by_email (
email text PRIMARY KEY,
username text,
age int
)
Однако с Ignite на вершине Cassandra все путается.К сожалению, я не смог найти каких-либо полезных примеров или ответов на следующие вопросы:
- Означает ли наличие нескольких таблиц, в которых хранится пользовательская информация, наличие кеша Ignite для каждой из этих таблиц?
- Имеет лисоставной первичный ключ означает ввод нового типа для каждого ключа и использование его в качестве ключа кэша Ignite?
- Наличие Ignite означает отсутствие прямого чтения из Cassandra.Это даже делает сцену беспокоящейся при моделировании данных в соответствии с лучшими практиками NoSql?Будет ли хорошо иметь только одну пользовательскую таблицу и позволить Ignite позаботиться о запросах по имени пользователя или электронной почте.
CREATE TABLE users (
id uuid PRIMARY KEY,
username text,
email text,
age int
)