Migrar dados do Cassandra para a conta do Azure Cosmos DB for Apache Cassandra usando o Arcion

APLICA-SE A: Cassandra

A API do Cassandra no Azure Cosmos DB se tornou uma ótima opção para cargas de trabalho corporativas em execução no Apache Cassandra por vários motivos, como:

  • Sem sobrecarga de gerenciamento e monitoramento: Ele elimina a sobrecarga de gerenciar e monitorar uma infinidade de configurações em arquivos de sistema operacional, de JVM e arquivos YAML e suas interações.

  • Economia de custos significativa: Você pode economizar custos com Azure Cosmos DB, o que inclui o custo da VM, a largura de banda e todas as licenças aplicáveis. Além disso, você não precisa gerenciar os custos de data centers, servidores, armazenamento de SSD, rede e eletricidade.

  • Capacidade de usar o código e as ferramentas existentes: o Azure Cosmos DB fornece compatibilidade no nível de protocolo com as ferramentas e os SDKs existentes do Cassandra. Essa compatibilidade garante que seja possível usar a base de código existente com o Azure Cosmos DB for Apache Cassandra com alterações básicas.

Há várias maneiras de migrar cargas de trabalho de banco de dados de uma plataforma para outra. O Arcion é uma ferramenta que oferece um modo seguro e confiável de executar migração com zero tempo de inatividade de outros bancos de dados para Azure Cosmos DB. Este artigo descreve as etapas necessárias para migrar dados do banco de dados do Apache Cassandra para o Azure Cosmos DB for Apache Cassandra usando o Arcion.

Observação

Essa oferta do Arcion está atualmente em versão beta. Para obter mais informações, entre em contato com eles no Suporte do Arcion

Benefícios de usar o Arcion para migração

A solução de migração do Arcion segue uma abordagem passo a passo para migrar cargas de trabalho operacionais complexas. A seguir estão alguns dos principais aspectos do plano de migração com zero tempo de inatividade do Arcion:

  • Ele oferece migração automática de lógica de negócios (tabelas, índices, visualizações) do banco de dados Apache Cassandra para Azure Cosmos DB. Você não precisa criar esquemas manualmente.

  • O Arcion oferece replicação de banco de dados paralela e de alto volume. Ele permite que as plataformas de origem e de destino estejam em sincronia durante a migração usando uma técnica chamada CDA (captura de dados de alteração). Usando o CDC, o Arcion obtém continuamente um fluxo de alterações do banco de dados de origem (Apache Cassandra) e a aplica ao banco de dados de destino (Azure Cosmos DB).

  • Ele é tolerante a falhas e fornece a entrega de dados apenas uma vez, mesmo durante uma falha de hardware ou software no sistema.

  • Ele protege os dados durante o trânsito usando metodologias de segurança, como TLS, criptografia.

Etapas para migrar dados

Esta seção descreve as etapas necessárias para configurar o Arcion e migrar dados do Apache Cassandra para o Azure Cosmos DB.

  1. No computador em que você planeja instalar o Arcion Replicant, adicione um certificado de segurança. Esse certificado é exigido pelo Arcion Replicant para estabelecer uma conexão TLS com a conta de Azure Cosmos DB especificada. Você pode adicionar o certificado da seguinte forma:

    wget https://cacert.omniroot.com/bc2025.crt
    mv bc2025.crt bc2025.cer
    keytool -keystore $JAVA_HOME/lib/security/cacerts -importcert -alias bc2025ca -file bc2025.cer
    
  2. Você pode obter a instalação do Arcion e os arquivos binários solicitando uma demonstração no site do Arcion. Você também pode enviar um email para a equipe.

    Download da ferramenta Arcion Replicant

    Arquivos do Arcion Replicant

  3. No terminal da CLI, defina a configuração do banco de dados de origem. Abra o arquivo de configuração usando o comando vi conf/conn/cassandra.yml e adicione uma lista de endereços de IP dos nós, número de porta, nome de usuário, senha e quaisquer outros detalhes necessários, separada por vírgulas. Este é um exemplo dos conteúdos no arquivo de configuração:

    type: CASSANDRA
    
    host: 172.17.0.2
    port: 9042
    
    username: 'cassandra'
    password: 'cassandra'
    
    max-connections: 30
    
    

    Abrir o editor de conexão do Cassandra

    Configuração da conexão do Cassandra

    Depois de preencher os detalhes de configuração, salve e feche o arquivo.

  4. Você também pode configurar o arquivo de filtro do banco de dados de origem. O arquivo de filtro especifica quais esquemas ou tabelas migrar. Abra o arquivo de configuração usando o comando vi filter/cassandra_filter.yml e insira os seguintes detalhes de configuração:

    
    allow:
    -	schema: “io_arcion”
    Types: [TABLE]
    

    Depois de preencher os detalhes do filtro de banco de dados, salve e feche o arquivo.

  5. Em seguida, você definirá a configuração do banco de dados de destino. Antes de definir a configuração, crie uma conta do Azure Cosmos DB for Apache Cassandra e depois crie um keyspace e uma tabela para armazenar os dados migrados. Como você está migrando do Apache Cassandra para a API do Cassandra no Azure Cosmos DB, use a mesma chave de partição que já usou com o Apache Cassandra.

  6. Antes de migrar os dados, aumente a taxa de transferência do contêiner para o valor necessário para que seu aplicativo migre rapidamente. Por exemplo, você pode aumentar a taxa de transferência para 100000 RUs. Dimensionar a taxa de transferência antes de iniciar a migração ajudará você a migrar seus dados em menos tempo.

    Dimensionar a taxa de transferência do contêiner do Azure Cosmos DB

    Diminua a taxa de transferência após a conclusão da migração. Com base na quantidade de dados armazenados e RUs necessários para cada operação, você pode estimar a taxa de transferência necessária após a migração de dados. Para saber mais sobre como estimar os RUs necessário, confira Provisionar taxa de transferência em contêineres e bancos de dados e Estimar RU/s usando os artigos de planejamento de capacidade do Azure Cosmos DB.

  7. Obtenha o Ponto de Contato, a Porta, o Nome de usuário e a Senha Primária da conta do Azure Cosmos DB no painel Cadeia de Conexão. Você usará esses valores no arquivo de configuração.

  8. No terminal da CLI, defina a configuração do banco de dados de destino. Abra o arquivo de configuração usando o comando vi conf/conn/cosmosdb.yml e adicione uma lista de URI de host, número da porta, nome de usuário, senha e outros parâmetros necessários, separada por vírgulas. Os exemplos a seguir mostram os conteúdos do arquivo de configuração:

    type: COSMOSDB
    
    host: '<Azure Cosmos DB account’s Contact point>'
    port: 10350
    
    username: 'arciondemo'
    password: '<Your Azure Cosmos DB account’s primary password>'
    
    max-connections: 30
    
  9. Em seguida, migre os dados usando o Arcion. Você pode executar o Arcion Replicant no modo completo ou de instantâneo:

    • Modo completo: nesse modo, o Replicant continua a ser executado após a migração e escuta as alterações no sistema Apache Cassandra de origem. Se ele detectar alterações, elas serão replicadas na conta de destino do Azure Cosmos DB em tempo real.

    • Modo de instantâneo – nesse modo, você pode executar a migração de esquema e replicação de dados de uso único. A replicação em tempo real não tem suporte com essa opção.

    Usando os dois modos acima, a migração pode ser executada com tempo de inatividade zero.

  10. Para migrar dados, no terminal da CLI do Arcion Replicant, execute o seguinte comando:

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing
    

    A interface do usuário do Replicant mostra o progresso da replicação. Depois que a operação de migração e instantâneo do esquema for concluída, o progresso mostrará 100%. Depois que a migração for concluída, você poderá validar os dados no banco de dados de destino do Azure Cosmos DB.

    Saída de migração de dados no Cassandra

  11. Como você usou o modo completo para a migração, você pode executar operações como inserir, atualizar ou excluir dados no banco de dados do Apache Cassandra de origem. Mais tarde, valide se eles são replicados em tempo real no banco de dados do Azure Cosmos DB de destino. Após a migração, diminua a taxa de transferência configurada para o contêiner do Azure Cosmos DB.

  12. Você pode parar o Replicant em qualquer ponto e reiniciá-lo com a opção --resume. A replicação continua do ponto em que foi interrompida sem comprometer a consistência dos dados. O comando a seguir mostra como usar a opção retomar.

    ./bin/replicant full conf/conn/cassandra.yaml conf/conn/cosmosdb.yaml --filter filter/cassandra_filter.yaml --replace-existing --resume
    

Para saber mais sobre a migração de dados para o destino, migração em tempo real, consulte a demonstração do Arcion Replicant.

Próximas etapas