Cassandra Tabela CQL: Exemplo de Criação, Alteração e Truncamento

⚡ Resumo Inteligente

Cassandra As operações com tabelas abrangem criação, alteração e exclusão.pinge truncando famílias de colunas com CQL. Esta página explica cada comando, os três formatos de chave primária que definem a distribuição de dados e as diferenças entre remover linhas e remover uma tabela.

  • ???? Criar tabela: Uma tabela precisa de um espaço de chaves, definições de colunas e uma cláusula de chave primária que fixe a distribuição e a ordem de classificação.
  • 🔑 Chave primária única: Uma coluna funciona como chave de partição, de forma que cada linha com esse valor seja alocada no mesmo nó.
  • 🧩 Chave primária composta: A primeira coluna divide as partições, as colunas restantes agrupam e classificam as linhas dentro da partição.
  • 🧮 Chave de partição composta: O uso de duas colunas como delimitador divide uma divisória grande em várias menores.
  • ✏️ Alterar limites: É possível adicionar ou remover colunas, mas as colunas da chave primária nunca podem ser alteradas.
  • 🗑️ Remover vs. Truncar: O comando DROP remove o esquema e os dados; o comando TRUNCATE esvazia todas as linhas, mas mantém a definição da tabela.

Cassandra Criar tabela Alterar Excluir

A sintaxe de Cassandra A linguagem de consulta (CQL) se assemelha a SQL língua.

Como criar uma tabela em Cassandra

Família de colunas em Cassandra é semelhante à tabela RDBMS. A família de colunas é usada para armazenar dados.

O comando 'Criar Tabela' é usado para criar família de colunas em Cassandra.

Sintaxe

CREATE TABLE KeyspaceName.TableName (
    ColumnName DataType,
    ColumnName DataType,
    ColumnName DataType,
    PRIMARY KEY (ColumnName)
) WITH PropertyName = PropertyValue;

1. Chave primária: Existem dois tipos de chave primária.

  • Chave primária única: A chave primária única é especificada pela sintaxe a seguir.

Sintaxe

PRIMARY KEY (ColumnName)

Na única chave primária, existe apenas uma única coluna. Essa coluna também é chamada de chave de particionamento. Os dados são particionados com base nessa coluna. Os dados são distribuídos em diferentes nós com base na chave de partição.

2. Chave primária composta: A chave primária composta é especificada pela seguinte sintaxe.

Sintaxe

PRIMARY KEY (ColumnName1, ColumnName2, ...)

Na sintaxe acima, ColumnName1 é a chave de particionamento e ColumnName2 é o Clusterchave de ing. Os dados serão particionados com base em ColumnName1 e os dados serão agrupados com base em ColumnName2. Clustering é o processo que classifica os dados na partição.

3. Chave de particionamento composto: A chave de particionamento composta é especificada pela sintaxe a seguir.

Sintaxe

PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)

Na sintaxe acima, ColumnName1 e ColumnName2 são as chaves de particionamento compostas. Os dados serão particionados com base em ambas as colunas ColumnName1 e ColumnName2, e agrupados com base na coluna ColumnName3. Se você tiver muitos dados em uma única partição, uma chave de particionamento composta é utilizada. A chave de particionamento composta é usada para criar múltiplas partições para os dados.

  • Com cláusula

“Cláusula With” é usada para especificar qualquer propriedade e seu valor para a tabela definida. Por exemplo, se você quiser compactar Cassandra dados da tabela. Você pode definir a propriedade de compressão especificando o valor da propriedade do algoritmo de compressão na cláusula "With". A mesma cláusula também define CLUSTERING ORDER BY para inverter a direção da classificação de uma coluna de agrupamento e default_time_to_live para expirar automaticamente a cada linha.

Exemplo

Aqui está a execução do comando 'Criar tabela' que irá criar a tabela com o nome 'Aluno' no keyspace 'Universidade'.

Cassandra Criar a tabela

CREATE TABLE University.Student (
    RollNo int,
    Name text,
    dept text,
    PRIMARY KEY (RollNo)
);

Após a execução bem-sucedida do comando 'Criar tabela', a tabela 'Aluno' será criada no keyspace 'Universidade' com as colunas Matrícula, Nome e Departamento. Matrícula é a chave primária. Matrícula também é uma chave de partição, portanto, cada aluno ocupa uma partição separada de uma única linha.

Cassandra Alterar a tabela

O comando 'Alter Table' é usado para eliminar coluna, adicionar uma nova coluna, alterar o nome da coluna, alterar o tipo de coluna e alterar a propriedade da tabela.

Sintaxe

A seguir está a sintaxe do comando 'Alter Table'.

ALTER TABLE KeyspaceName.TableName
    ADD ColumnName ColumnDataType;

ALTER TABLE KeyspaceName.TableName
    DROP ColumnName;

ALTER TABLE KeyspaceName.TableName
    RENAME ColumnName TO NewColumnName;

ALTER TABLE KeyspaceName.TableName
    WITH PropertyName = PropertyValue;

Cada formulário é emitido como uma declaração separada. Duas restrições se aplicam atualmente. Cassandra Lançamentos: o tipo de dados de uma coluna existente não pode mais ser alterado e a opção RENAME funciona apenas em uma coluna de agrupamento da chave primária.

Exemplo

Aqui está o instantâneo do comando 'Alter Table' que irá adicionar uma nova coluna na tabela Student.

Cassandra Alterar a tabela

ALTER TABLE University.Student ADD Semester int;

Após a execução bem-sucedida do comando 'Alterar Tabela', uma nova coluna 'Semestre' com tipo de dados 'int' será adicionada à tabela Aluno.

Aqui está a captura de tela que mostra a tabela Aluno atualizada.

Cassandra Alterar a tabela

Cassandra Drop table

O comando 'Drop table' remove a tabela especificada, incluindo todos os dados do keyspace. Antes de remover a tabela, execute o comando 'drop'.ping a mesa, Cassandra tira um instantâneo dos dados, não do esquema, como backup.

Sintaxe

DROP TABLE IF EXISTS KeyspaceName.TableName;

Exemplo

Aqui está o instantâneo do comando executado 'Drop Table' que eliminará a tabela Student do keyspace 'University'.

Cassandra Drop table

DROP TABLE University.Student;

Após a execução bem-sucedida do comando 'Drop Table', a tabela Student será eliminada do keyspace University.

Aqui está o instantâneo que mostra o erro retornado pelo Cassandra quando tentei acessar a tabela Aluno que não existe.

Cassandra Drop table

Cassandra Tabela Truncada

O comando 'Truncar tabela' remove todos os dados da tabela especificada. Antes de truncar os dados, Cassandra tira o instantâneo dos dados como backup.

Sintaxe

TRUNCATE KeyspaceName.TableName;

Exemplo

Existem três registros na tabela Aluno. Estes são os registros da tabela.

Cassandra Tabela Truncada

Aqui está o instantâneo do comando executado 'Truncar tabela' que removerá todos os dados da tabela Aluno.

Cassandra Tabela Truncada

Após a execução bem-sucedida do comando 'Truncar Tabela', todos os dados serão removidos da tabela Aluno.

Aqui está o instantâneo do estado do banco de dados onde não há registros na tabela Student.

Cassandra Tabela Truncada

O comando truncate exige que todos os nós estejam acessíveis, pois é executado em todo o cluster simultaneamente. Se algum nó estiver inativo, a instrução falhará, o que é uma medida de segurança deliberada para evitar que dados parciais sejam deixados para trás.

Descartar vs Truncar vs Excluir em Cassandra

Três comandos removem dados, e escolher o comando errado pode destruir um esquema ou causar problemas de desempenho.

Command O que isso remove Esquema mantido Custo
RETIRAR TABELA Todas as linhas e a definição da tabela Não Barato. Os SSTables são capturados em um snapshot e depois descartados.
TRUNCAR Todas as linhas Sim Barato, mas exige que todos os nós estejam ativos. Não são criadas lápides.
EXCLUIR Linhas ou colunas selecionadas Sim Caro em grande escala. Cada remoção cria uma lápide com a inscrição "deve ser ignorada até a compactação".

A regra prática é preferir o comando TRUNCATE em vez de um DELETE em massa ao limpar uma tabela inteira, pois milhares de marcadores de exclusão (tombstones) irão tornar cada leitura subsequente dessa partição mais lenta. A remoção em nível de linha é abordada em [referência]. Inserir, atualizar e excluir em CQL tutorial.

Perguntas Frequentes

Não. A chave primária determina a localização física dos dados, portanto, ela é fixa desde a criação da tabela. Alterá-la significa criar uma nova tabela com a chave desejada e migrar as linhas para ela.

Adicione WITH CLUSTERING ORDER BY (NomeDaColuna DESC) no momento da criação. Definir isso no esquema é muito mais econômico do que ordenar no momento da consulta a cada leitura.

Não. A coluna é ocultada das consultas imediatamente, mas seus dados permanecem dentro das SSTables existentes até que a compactação as reescreva. O espaço é recuperado gradualmente.

A lista de colunas é traduzida corretamente, mas a IA frequentemente mantém um ID substituto como chave de partição, o que cria partições de linha única. Reformule o padrão de consulta para que a chave seja escolhida para as leituras.

Sim, para problemas de nível de padrão, como colunas de agrupamento ausentes, partições ilimitadas ou colunas de coleção que provavelmente excederão os limites. Confirme com a cardinalidade real antes de agir.

Resuma esta postagem com: