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

APLICA-SE A: Cassandra

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

  • Sem sobrecarga de gestão e monitorização: Elimina a sobrecarga da gestão e monitorização de inúmeras definições em ficheiros do SO, JVM e yaml e respetivas interações.

  • Poupanças significativas nos custos: Pode poupar custos com o Azure Cosmos DB, que inclui o custo das VMs, a largura de banda e quaisquer licenças aplicáveis. Além disso, não tem de gerir os datacenters, servidores, armazenamento SSD, rede e custos de eletricidade.

  • Capacidade de utilizar código e ferramentas existentes: O Azure Cosmos DB fornece compatibilidade ao nível do protocolo com os SDKs e ferramentas existentes do Cassandra. Esta compatibilidade garante que pode utilizar a base de código existente com o Azure Cosmos DB para Apache Cassandra com alterações triviais.

Existem várias formas de migrar cargas de trabalho de base de dados de uma plataforma para outra. A Arcion é uma ferramenta que oferece uma forma segura e fiável de efetuar a migração de tempo de inatividade zero de outras bases de dados para o Azure Cosmos DB. Este artigo descreve os passos necessários para migrar dados da base de dados do Apache Cassandra para o Azure Cosmos DB para o Apache Cassandra com o Arcion.

Nota

Esta oferta da Arcion está atualmente em versão beta. Para obter mais informações, contacte-os através do Suporte da Arcion

Benefícios ao utilizar o Arcion para migração

A solução de migração da Arcion segue uma abordagem passo a passo para migrar cargas de trabalho operacionais complexas. Seguem-se alguns dos principais aspetos do plano de migração de tempo de inatividade zero da Arcion:

  • Oferece a migração automática da lógica de negócio (tabelas, índices, vistas) da base de dados do Apache Cassandra para o Azure Cosmos DB. Não tem de criar esquemas manualmente.

  • A Arcion oferece replicação de base de dados paralela e de volume elevado. Permite que as plataformas de origem e de destino estejam sincronizadas durante a migração através de uma técnica chamada Change-Data-Capture (CDC). Ao utilizar a CDC, a Arcion solicita continuamente um fluxo de alterações da base de dados de origem (Apache Cassandra) e aplica-a à base de dados de destino (Azure Cosmos DB).

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

  • Protege os dados durante o trânsito através de metodologias de segurança como o TLS, encriptação.

Passos para migrar dados

Esta secção descreve os passos necessários para configurar o Arcion e migra dados da base de dados do Apache Cassandra para o Azure Cosmos DB.

  1. A partir do computador onde planeia instalar o replicante arcion, adicione um certificado de segurança. Este certificado é necessário pelo replicante arcion para estabelecer uma ligação TLS com a conta especificada do Azure Cosmos DB. Pode adicionar o certificado com os seguintes passos:

    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. Pode obter a instalação do Arcion e os ficheiros binários ao pedir uma demonstração no site da Arcion. Em alternativa, também pode enviar um e-mail à equipa.

    Transferência da ferramenta arcion replicant

    Ficheiros replicantes do Arcion

  3. No terminal da CLI, configure a configuração da base de dados de origem. Abra o ficheiro de configuração com vi conf/conn/cassandra.yml o comando e adicione uma lista separada por vírgulas de endereços IP dos nós do Cassandra, número de porta, nome de utilizador, palavra-passe e quaisquer outros detalhes necessários. Segue-se um exemplo de conteúdo no ficheiro de configuração:

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

    Abrir o editor de ligação do Cassandra

    Configuração da ligação para Cassandra

    Depois de preencher os detalhes da configuração, guarde e feche o ficheiro.

  4. Opcionalmente, pode configurar o ficheiro de filtro da base de dados de origem. O ficheiro de filtro especifica os esquemas ou tabelas a migrar. Abra o ficheiro de configuração com vi filter/cassandra_filter.yml o comando e introduza os seguintes detalhes de configuração:

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

    Depois de preencher os detalhes do filtro da base de dados, guarde e feche o ficheiro.

  5. Em seguida, irá configurar a configuração da base de dados de destino. Antes de definir a configuração, crie uma conta do Azure Cosmos DB para o Apache Cassandra e, em seguida, crie um Espaço de Chaves e uma tabela para armazenar os dados migrados. Uma vez que está a migrar do Apache Cassandra para a API para Cassandra no Azure Cosmos DB, pode utilizar a mesma chave de partição que utilizou com o Apache Cassandra.

  6. Antes de migrar os dados, aumente o débito do contentor para a quantidade necessária para a sua aplicação migrar rapidamente. Por exemplo, pode aumentar o débito para 100000 RUs. Dimensionar o débito antes de iniciar a migração irá ajudá-lo a migrar os seus dados em menos tempo.

    Dimensionar o contentor do Azure Cosmos DB em todo o

    Diminua o débito após a conclusão da migração. Com base na quantidade de dados armazenados e RUs necessários para cada operação, pode estimar o débito necessário após a migração de dados. Para saber mais sobre como estimar as RUs necessárias, veja Aprovisionar débito em contentores e bases de dados e Estimar RU/s com os artigos do Planeador de capacidade do Azure Cosmos DB .

  7. Obtenha o Ponto de Contacto, a Porta, o Nome de Utilizador e a Palavra-passe Primária da sua conta do Azure Cosmos DB no painel Cadeia de Ligação . Irá utilizar estes valores no ficheiro de configuração.

  8. No terminal da CLI, configure a configuração da base de dados de destino. Abra o ficheiro de configuração com vi conf/conn/cosmosdb.yml o comando e adicione uma lista separada por vírgulas do URI do anfitrião, número de porta, nome de utilizador, palavra-passe e outros parâmetros necessários. O exemplo seguinte mostra o conteúdo do ficheiro 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 com Arcion. Pode executar o replicante arcion no modo completo ou instantâneo :

    • Modo completo – neste modo, o replicante continua a ser executado após a migração e escuta quaisquer alterações no sistema Apache Cassandra de origem. Se detetar alterações, estas são replicadas na conta do Azure Cosmos DB de destino em tempo real.

    • Modo instantâneo – neste modo, pode efetuar a migração de esquema e a replicação de dados única. A replicação em tempo real não é suportada com esta opção.

    Ao utilizar os dois modos acima, a migração pode ser efetuada com um período de indisponibilidade zero.

  10. Para migrar dados, a partir do terminal da CLI de réplica de Arcion, execute o seguinte comando:

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

    A IU replicante mostra o progresso da replicação. Assim que a migração do esquema e a operação de instantâneo estiverem concluídas, o progresso mostra 100%. Após a conclusão da migração, pode validar os dados na base de dados do Azure Cosmos DB de destino.

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

  11. Uma vez que utilizou o modo completo para migração, pode realizar operações como inserir, atualizar ou eliminar dados na base de dados do Apache Cassandra de origem. Posteriormente, confirme que são replicados em tempo real na base de dados do Azure Cosmos DB de destino. Após a migração, certifique-se de que diminui o débito configurado para o contentor do Azure Cosmos DB.

  12. Pode parar o replicante em qualquer ponto e reiniciá-lo com o comutador --resume . A replicação é retomada a partir do ponto em que parou sem comprometer a consistência dos dados. O comando seguinte mostra como utilizar o comutador de currículo.

    ./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, veja a demonstração de réplica do Arcion.

Passos seguintes