Como migrar tabelas de aplicativos em um cluster Cassandra existente para um novo cluster?
O novo cluster tem uma topologia e atribuições de token diferentes para o cluster de origem.
Como migrar tabelas de aplicativos em um cluster Cassandra existente para um novo cluster?
O novo cluster tem uma topologia e atribuições de token diferentes para o cluster de origem.
Preparação
No cluster de origem, tire um instantâneo dos keyspaces relevantes usando o
nodetool snapshot
comando. Por exemplo:Aqui está um exemplo onde eu tiro um instantâneo do
community
keyspace.ETAPA B1 - Crie um instantâneo:
O
1591083719993
nome do diretório é um carimbo de data/hora Unix para quando o instantâneo foi criado e é equivalente a 2 de junho de 2020 às 7h41 GMT. Há uma tabela chamadausers
no meu keyspace de exemplo e o instantâneo está localizado na seguinte estrutura de diretórios:Para obter mais informações, consulte Tirar um instantâneo no Cassandra .
Ferramentas
A captura de um instantâneo precisa ser realizada em todos os nós do cluster. É preferível criá-los em paralelo para facilitar a identificação das pastas de instantâneos.
Para conseguir isso, recomendo usar ferramentas que você já tem em seu ambiente. Se você já estiver usando ferramentas de orquestração como o Ansible, crie os instantâneos em paralelo executando o comando em todos os nós simultaneamente. Da mesma forma, você também pode fazer o script da operação de restauração para executá-la em paralelo usando o Ansible.
Se você não estiver usando ferramentas de orquestração, considere usar Cluster SSH (
cssh
) ou SSH Paralelo (pssh
) para poder executar comandos simultaneamente em todos os nós do cluster.Clonar uma mesa
PREPARAÇÃO - Crie o keyspace do aplicativo e o esquema de tabela no cluster de destino. Se necessário, use o
schema.cql
arquivo na pasta de instantâneos como guia.Depois que o keyspace e o esquema de tabela forem criados, siga o procedimento abaixo para restaurar as tabelas.
ETAPA 1 - Copie o instantâneo para um local temporário para que os arquivos SSTable estejam localizados em um diretório com extensão
keyspace_name/table_name
. Por exemplo:PASSO 2 - Carregue os arquivos de dados para o cluster de destino com o utilitário da seguinte forma:
ETAPA 3 - Repita as etapas 1 e 2 no próximo nó no cluster de origem até que os instantâneos em TODOS os nós tenham sido carregados no cluster de destino.
Repita as etapas acima em cada tabela que você deseja clonar para o cluster de destino.
Para obter mais informações, consulte carregador em massa Cassandra . Felicidades!
Para obter instruções sobre como clonar dados do aplicativo para um cluster "idêntico", consulte Como restaurar instantâneos do Cassandra para outro cluster com configuração idêntica? .