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.

  • 🗄️ Definição Essencial: Um keyspace contém tabelas, índices e tipos definidos pelo usuário, e armazena as configurações de replicação que todos eles herdam.
  • 🧭 Escolha da estratégia: A estratégia SimpleStrategy é adequada para um único centro de dados; a estratégia NetworkTopologyStrategy define um fator de replicação por centro de dados.
  • 🔢 Fator de replicação: Três réplicas é a configuração padrão de produção, pois ela sobrevive à falha de um nó no QUORUM.
  • ✏️ Alterar limites: A estratégia, o fator de replicação e as gravações duráveis ​​podem ser alterados; o nome do espaço de chaves não pode.
  • 💾 Escritas duráveis: Definir essa opção como falsa ignora o registro de commits, trocando segurança em caso de falha por velocidade de gravação.
  • 🗑️ Comportamento de queda: Cairping remove todas as tabelas e índices, depois Cassandra Tira uma foto instantânea automaticamente.

Cassandra Espaço de teclas Criar Alterar Soltar

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.
  1. 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ó.
  2. 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.

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.

Alterar espaço-chave Cassandra

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.

Cassandra Soltar espaço-chave

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.

Cassandra Soltar espaço-chave

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.

Perguntas Frequentes

Mantenha o número pequeno, normalmente um por aplicação. Cada keyspace e tabela adiciona metadados de esquema e sobrecarga de memória em cada nó, portanto, centenas de keyspaces degradam o desempenho do cluster.

Sim, se o auto_snapshot estiver ativado. Cassandra grava um instantâneo antes de descartarpingAssim, as SSTables podem ser restauradas com o sstableloader após a recriação do esquema.

Somente para dados que podem ser regenerados, como caches ou análises derivadas. Ignorarping O log de commits significa que as gravações ainda presentes na memtable serão perdidas se o nó parar inesperadamente.

Considerando o layout do data center e a meta de disponibilidade, a IA pode sugerir uma estratégia e fatores específicos para cada data center. Confirme os nomes dos data centers usando o comando `nodetool status`, pois um erro de digitação pode resultar em sub-replicação silenciosa.

Ele lida bem com sintaxes rotineiras, mas frequentemente herda hábitos relacionais, como nomes de estratégias sem aspas ou chaves estrangeiras. Execute cada script gerado primeiro em um keyspace de teste.

Resuma esta postagem com: