Como copiar dados de uma tabela Cassandra para outra estrutura para obter melhor desempenho
Em vários lugares, é recomendável projetar nossas tabelas Cassandra de acordo com as consultas que vamos executar nelas. Noeste artigo por DataScale eles afirmam isso:
A verdade é que ter muitas tabelas semelhantes com dados semelhantes é uma coisa boa no Cassandra. Limite a chave primária exatamente ao que você pesquisará. Se você planeja pesquisar os dados com critérios semelhantes, mas diferentes, crie uma tabela separada. Não há desvantagem em ter os mesmos dados armazenados de maneira diferente. A duplicação de dados é sua amiga em Cassandra.
[...]
Se você precisar armazenar o mesmo pedaço de dados em 14 tabelas diferentes, escreva-o 14 vezes. Não há desvantagem contra várias gravações.
Eu entendi isso, e agora minha pergunta é: desde que eu tenha uma tabela existente, digamos
CREATE TABLE invoices (
id_invoice int PRIMARY KEY,
year int,
id_client int,
type_invoice text
)
Mas quero consultar por ano e digitar, então gostaria de ter algo como
CREATE TABLE invoices_yr (
id_invoice int,
year int,
id_client int,
type_invoice text,
PRIMARY KEY (type_invoice, year)
)
Comid_invoice
como a chave de partição eyear
como a chave de cluster,qual é a maneira preferida de copiar os dados de uma tabela para outra executar consultas otimizadas mais tarde?
Minha versão do Cassandra:
user@cqlsh> show version;
[cqlsh 5.0.1 | Cassandra 3.5.0 | CQL spec 3.4.0 | Native protocol v4]