В нескольких местах он советовал создавать наши таблицы Cassandra в соответствии с запросами, которые мы будем выполнять на них. В в этой статье DataScale говорится следующее:
Истина заключается в том, что иметь много похожих таблиц с подобными данными - это хорошо в Кассандре. Ограничьте первичный ключ именно тем, с кем будете искать. Если вы планируете искать данные с похожими, но разными критериями, сделайте их отдельной таблицей. Нет недостатка в том, что одни и те же данные хранятся по-разному. Дублирование данных - ваш друг в Кассандре.
[...]
Если вам нужно сохранить один и тот же фрагмент данных в 14 разных таблицах, запишите его 14 раз. Не существует препятствий для множественных записей.
Я понял это, и теперь мой вопрос: при условии, что у меня есть существующая таблица, скажем
CREATE TABLE invoices (
id_invoice int PRIMARY KEY,
year int,
id_client int,
type_invoice text
)
Но я хочу запросить к году и тип вместо этого, поэтому я хотел бы иметь что-то вроде
CREATE TABLE invoices_yr (
id_invoice int,
year int,
id_client int,
type_invoice text,
PRIMARY KEY (type_invoice, year)
)
С id_invoice
в качестве ключа раздела и year
в качестве ключа кластеризации какой предпочтительный способ скопировать данные из одной таблицы в другую для выполнения оптимизированных запросов позже?
Моя версия Cassandra:
[email protected]> show version;
[cqlsh 5.0.1 | Cassandra 3.5.0 | CQL spec 3.4.0 | Native protocol v4]