Espaço de chave em CassandraExemplo de Criar, Alterar e Soltar
⚡ Resumo Inteligente
Espaço de chave em Cassandra é o contêiner de dados mais externo, equivalente a um banco de dados em um sistema relacional, e define como cada tabela dentro dele é replicada. Esta página aborda a criação, alteração e exclusão de tabelas.ping um espaço de chaves, além de suas propriedades e espaços de chaves do sistema.
O que é o Keyspace Cassandra?
Um espaço-chave em Cassandra É um contêiner de dados, semelhante a um banco de dados em SGBD (Sistemas de Gerenciamento de Banco de Dados Relacionais). Cassandra Keyspace determina como os dados são replicados nos nós.
Como a replicação é definida no keyspace em vez de em tabelas individuais, todas as tabelas criadas dentro dele herdam a mesma estratégia e fator de replicação. Isso faz com que o keyspace seja a primeira decisão em qualquer esquema.
Como criar keyspace em Cassandra
Um keyspace é um objeto que contém as famílias de colunas, tipos definidos pelo usuário. Em Cassandra, Keyspace é semelhante a RDBMS Base de dados. Keyspace contém famílias de colunas, índices, tipos definidos pelo usuário, reconhecimento do data center, estratégia usada no keyspace, fator de replicação, etc.
Comando “Criar espaço-chave”É usado para criar keyspace em Cassandra.
Sintaxe
CREATE KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 };
Vários componentes de Cassandra Espaço-chave
- Estratégia: Ao declarar o nome da estratégia em Cassandra. Existem dois tipos de estratégias declaradas em Cassandra Sintaxe.
- Estratégia Simples: A estratégia simples é usada quando você tem apenas um data center. Nesta estratégia, a primeira réplica é colocada no nó selecionado pelo particionador. Os nós restantes são colocados no sentido horário no anel, sem considerar a localização do rack ou do nó.
- Estratégia de topologia de rede: a estratégia de topologia de rede é usada quando você tem mais de um data center. Nesta estratégia, você deve fornecer o fator de replicação para cada data center separadamente. A estratégia de topologia de rede coloca réplicas em nós no sentido horário no mesmo data center. Esta estratégia tenta colocar réplicas em racks diferentes.
- Fator de replicação: o fator de replicação é o número de réplicas de dados colocadas em nós diferentes. Para nenhuma falha, 3 é um bom fator de replicação. Mais de dois fatores de replicação garantem nenhum ponto único de falha. Às vezes, o servidor pode estar inativo ou podem ocorrer problemas de rede e outras réplicas fornecem serviço sem falhas.
- Exemplo: Aqui está o instantâneo do comando executado “Create Keyspace” que criará keyspace em Cassandra.
CREATE KEYSPACE University WITH replication = { 'class': 'SimpleStrategy', 'replication_factor': 3 };
Após a execução bem-sucedida do comando “Create Keyspace”, a Keyspace University será criada em Cassandra Com a estratégia “SimpleStrategy” e fator de replicação 3. Observe que o nome da estratégia deve estar entre aspas; um valor sem aspas será rejeitado como um erro de sintaxe.
Alterar espaço-chave Cassandra
O comando “Alter Keyspace” altera o fator de replicação, o nome da estratégia e as propriedades de gravação durável no keyspace criado em Cassandra.
Sintaxe
ALTER KEYSPACE KeyspaceName WITH replication = { 'class': 'StrategyName', 'replication_factor': 3 } AND DURABLE_WRITES = true;
Aspectos principais ao alterar o Keyspace em Cassandra
- Nome do Keyspace: O nome do keyspace não pode ser alterado em Cassandra.
- Nome da estratégia: O nome da estratégia pode ser alterado especificando o novo nome da estratégia.
- Fator de replicação: O fator de replicação pode ser alterado especificando um novo fator de replicação.
- DURABLE_WRITES: O valor de DURABLE_WRITES pode ser alterado especificando seu valor como verdadeiro ou falso. Por padrão, é verdadeiro. Se definido como falso, nenhuma atualização será gravada no log de commits e vice-versa.
- Execução: Aqui está o instantâneo do comando executado “Alter Keyspace” que altera a estratégia de keyspace de 'SimpleStrategy' para 'NetworkTopologyStrategy' e o fator de replicação de 3 para 1 para DataCenter1.
ALTER KEYSPACE University WITH replication = { 'class': 'NetworkTopologyStrategy', 'DataCenter1': 1 };
Após a execução bem-sucedida do comando “Alter Keyspace”, o nome da estratégia será alterado de 'SimpleStrategy' para 'NetworkTopologyStrategy' e o fator de replicação será alterado de 3 para 1 para 'DataCenter1'.
Importante: Aumentar o fator de replicação não copia os dados existentes automaticamente. Execute reparo do nodetool no espaço de chaves afetado posteriormente, caso contrário, as novas réplicas permanecerão vazias até que uma correção de leitura atinja cada linha.
Cassandra Soltar espaço-chave
Comando 'Soltar espaço-chave' elimina o keyspace incluindo todos os dados, famílias de colunas, tipos definidos pelo usuário e índices de CassandraAntes de cairping o espaço de teclas, Cassandra tira um instantâneo do keyspace. Se o keyspace não existir no Cassandra, Cassandra retornará um erro, a menos que IF EXISTS seja usado.
Sintaxe
DROP KEYSPACE IF EXISTS KeyspaceName;
Exemplo
Aqui está o instantâneo do comando executado 'Drop Keyspace' que eliminará o keyspace University.
DROP KEYSPACE University;
Após a execução bem-sucedida do comando 'Drop keyspace University', a keyspace University será descartada Cassandra com todos os dados e esquema.
Aqui está o instantâneo onde o erro é retornado quando tentamos acessar um keyspace que não existe.
Observação: Não há diferença em descartar keyspace e excluir keyspace. Eliminar keyspace é igual a excluir keyspace.
Propriedades do espaço de teclas e espaços de teclas do sistema
Além de criar e deixar cairpingTrês comandos abrangem praticamente todo o trabalho diário com espaços de chaves no cqlsh.
DESCRIBE KEYSPACES; DESCRIBE KEYSPACE University; USE University;
O primeiro comando lista todos os espaços de chaves no cluster, o segundo imprime o esquema completo de um espaço de chaves, incluindo suas tabelas, e o terceiro define o espaço de chaves atual para que os nomes das tabelas não precisem mais de um prefixo.
Além dos espaços de teclas do usuário, Cassandra O sistema inclui vários arquivos próprios. Eles aparecem na saída do DESCRIBE KEYSPACES e vale a pena reconhecê-los em vez de excluí-los.
- sistema: Estado do nó local, incluindo seus intervalos de tokens e os nós que ele conhece.
- esquema_do_sistema: As definições de cada espaço de chaves, tabela, coluna e índice no cluster.
- autenticação_do_sistema: Funções, permissões e credenciais quando a autenticação está ativada.
- sistema_distribuído: Histórico de reparos e outros registros contábeis de todo o grupoping.
- sistema_tracé: pergunta traces capturado quando tracO botão está ligado.
Dois deles merecem atenção na produção. O autenticação_do_sistema O keyspace é criado com um fator de replicação de um por padrão; se esse nó for perdido, ninguém poderá fazer login, portanto, o fator de replicação deve ser aumentado para corresponder ao do cluster. esquema_do_sistema O keyspace explica por que as alterações de esquema devem ser aplicadas uma de cada vez, já que alterações simultâneas podem produzir versões de esquema conflitantes entre os nós.
Erros comuns de espaço de chaves e suas soluções
A maioria das falhas no espaço de chaves produz uma mensagem curta e reconhecível.
| erro | Causa e solução |
|---|---|
| Espaço de chaves desconhecido | Nenhum keyspace foi selecionado. Execute USE KeyspaceName ou prefixe a tabela como Keyspace.Table. |
| Erro de sintaxe em 'SimpleStrategy' | O nome da estratégia não está entre aspas. Escreva 'class': 'SimpleStrategy' entre aspas. |
| Opção de estratégia não reconhecida {replication_factor} | O parâmetro `replication_factor` foi usado com a estratégia `NetworkTopologyStrategy`. Essa estratégia, por sua vez, utiliza um fator por nome de centro de dados. |
| Não é possível adicionar um espaço de chaves existente. | O espaço de chaves já existe. Adicione IF NOT EXISTS ou remova o antigo primeiro. |
| Dados ausentes após o aumento do fator de replicação | Como esperado. Execute o comando `nodetool repair` no keyspace para que as novas réplicas sejam populadas. |
Uma vez que um espaço de chaves exista, o próximo passo é definir o armazenamento dentro dele, conforme abordado em Cassandra mesa tutorial.





