Eseguire la migrazione dei dati da Cassandra ad Azure Cosmos DB for Apache Cassandra usando Arcion

SI APPLICA A: Cassandra

L'API for Cassandra in Azure Cosmos DB è diventata un'ottima scelta per i carichi di lavoro aziendali in esecuzione in Apache Cassandra per vari motivi, ad esempio:

  • Nessun sovraccarico di gestione e monitoraggio: elimina il sovraccarico di gestione e monitoraggio di numerose impostazioni nei file di sistema, JVM e YAML e delle relative interazioni.

  • Risparmio significativo sui costi: è possibile risparmiare sui costi con Azure Cosmos DB, che include il costo delle macchine virtuali, della larghezza di banda e delle licenze applicabili. Inoltre, non è necessario gestire i costi relativi a data center, server, archiviazione SSD, rete ed elettricità.

  • Possibilità di usare codice e strumenti esistenti: Azure Cosmos DB offre compatibilità a livello di protocollo di trasmissione con gli strumenti e gli SDK Cassandra esistenti. Questa compatibilità garantisce l'uso della codebase esistente con Azure Cosmos DB for Apache Cassandra, con poche semplici modifiche.

Esistono vari modi per eseguire la migrazione dei carichi di lavoro del database da una piattaforma a un'altra. Arcion è uno strumento che offre un modo sicuro e affidabile per eseguire una migrazione senza tempi di inattività da altri database ad Azure Cosmos DB. Questo articolo descrive come eseguire la migrazione dei dati da un database Apache Cassandra ad Azure Cosmos DB for Apache Cassandra usando Arcion.

Nota

Questa offerta di Arcion è attualmente in versione beta. Per altre informazioni, contattare il team di supporto Arcion

Vantaggi dell'uso di Arcion per la migrazione

La soluzione di migrazione di Arcion segue un approccio dettagliato per eseguire la migrazione di carichi di lavoro operativi complessi. Di seguito sono riportati alcuni dei principali aspetti del piano di migrazione di Arcion senza tempi di inattività:

  • Offre la migrazione automatica della logica di business (tabelle, indici, viste) dal database Apache Cassandra ad Azure Cosmos DB. Non è necessario creare schemi manualmente.

  • Arcion offre una replica di database parallela e di volume elevato. Consente di mantenere sincronizzate le piattaforme di origine e di destinazione durante la migrazione usando la tecnica CDC (Change-Data-Capture). Usando CDC, Arcion esegue continuamente il pull di un flusso di modifiche dal database di origine (Apache Cassandra) e lo applica al database di destinazione (Azure Cosmos DB).

  • È a tolleranza di errore e assicura che la distribuzione di dati avvenga una sola volta, anche durante un errore hardware o software nel sistema.

  • Protegge i dati durante il transito usando metodologie di sicurezza come TLS e crittografia.

Passaggi per la migrazione dei dati

Questa sezione descrive i passaggi necessari per configurare Arcion ed esegue la migrazione dei dati dal database Apache Cassandra ad Azure Cosmos DB.

  1. Nel computer in cui si prevede di installare il replicante Arcion aggiungere un certificato di sicurezza. Questo certificato è richiesto dal replicante Arcion per stabilire una connessione TLS con l'account Azure Cosmos DB specificato. È possibile aggiungere il certificato seguendo questa procedura:

    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. È possibile ottenere i file binari e di installazione di Arcion richiedendo una demo sul sito Web Arcion. In alternativa, è anche possibile inviare un messaggio di posta elettronica al team.

    Arcion replicant tool download

    Arcion replicant files

  3. Nel terminale dell'interfaccia della riga di comando impostare la configurazione del database di origine. Aprire il file di configurazione usando il comando vi conf/conn/cassandra.yml e aggiungere un elenco delimitato da virgole di indirizzi IP dei nodi Cassandra, numero di porta, nome utente, password e altri dettagli obbligatori. Di seguito è riportato un esempio di contenuto del file di configurazione:

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

    Open Cassandra connection editor

    Cassandra connection configuration

    Dopo aver inserito i dettagli di configurazione, salvare e chiudere il file.

  4. Facoltativamente, è possibile configurare il file di filtro del database di origine. Il file di filtro specifica gli schemi o le tabelle di cui eseguire la migrazione. Aprire il file di configurazione usando il comando vi filter/cassandra_filter.yml e immettere i dettagli di configurazione seguenti:

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

    Dopo aver inserito i dettagli di filtro database, salvare e chiudere il file.

  5. Successivamente si imposterà la configurazione del database di destinazione. Prima di definire la configurazione, creare un account Azure Cosmos DB for Apache Cassandra e quindi creare un keyspace e una tabella per archiviare i dati migrati. Poiché si esegue la migrazione da Apache Cassandra all'API per Cassandra in Azure Cosmos DB, è possibile usare la stessa chiave di partizione usata con Apache Cassandra.

  6. Prima di procedere alla migrazione dei dati, aumentare la velocità effettiva del contenitore fino alla quantità necessaria per l'applicazione in modo da accelerare la procedura. Ad esempio, è possibile aumentare la velocità effettiva fino a 100000 UR. L'aumento della velocità effettiva prima dell'avvio della migrazione dei dati consentirà di eseguire la procedura in meno tempo.

    Scale Azure Cosmos DB container throughout

    Ridurre la velocità effettiva al termine della migrazione. In base alla quantità di dati archiviati e alle UR necessarie per ogni operazione, è possibile stimare la velocità effettiva necessaria dopo la migrazione dei dati. Per altre informazioni su come stimare le UR necessarie, vedere gli articoli Effettuare il provisioning della velocità effettiva nei contenitori e nei database e Stimare le UR/sec usando Azure Cosmos DB Capacity Planner.

  7. Ottenere il punto di contatto, la porta, il nome utente e la password primaria dell'account Azure Cosmos DB dal riquadro Stringa di connessione. Questi valori verranno usati nel file di configurazione.

  8. Nel terminale dell'interfaccia della riga di comando impostare la configurazione del database di destinazione. Aprire il file di configurazione usando il comando vi conf/conn/cosmosdb.yml e aggiungere un elenco delimitato da virgole di URI host, numero di porta, nome utente, password e altri parametri obbligatori. L'esempio seguente illustra il contenuto del file di configurazione:

    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. Eseguire quindi la migrazione dei dati usando Arcion. È possibile eseguire il replicante Arcion in modalità Full o Snapshot:

    • Modalità Full: in questa modalità il replicante continua a essere eseguito dopo la migrazione e rimane in ascolto di eventuali modifiche nel sistema Apache Cassandra di origine. Le eventuali modifiche rilevate vengono replicate nell'account Azure Cosmos DB di destinazione in tempo reale.

    • Modalità Snapshot: in questa modalità è possibile eseguire la migrazione degli schemi e la replica dei dati una tantum. La replica in tempo reale non è supportata con questa opzione.

    Usando le due modalità precedenti, la migrazione può essere eseguita senza tempi di inattività.

  10. Per eseguire la migrazione dei dati, nel terminale dell'interfaccia della riga di comando del replicante Arcion eseguire il comando seguente:

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

    L'interfaccia utente del replicante mostra lo stato di avanzamento della replica. Al termine della migrazione degli schemi e dell'operazione snapshot, lo stato di avanzamento mostra 100%. Al termine della migrazione, è possibile convalidare i dati nel database Azure Cosmos DB di destinazione.

    Cassandra data migration output

  11. Poiché è stata usata la modalità Full per la migrazione, è possibile eseguire operazioni come inserimento, aggiornamento o eliminazione dei dati nel database Apache Cassandra di origine. In seguito verificare che queste modifiche vengano replicate in tempo reale nel database Azure Cosmos DB di destinazione. Dopo la migrazione, assicurarsi di ridurre la velocità effettiva configurata per il contenitore Azure Cosmos DB.

  12. È possibile arrestare il replicante qualsiasi punto e riavviarlo con l'opzione --resume. La replica riprende dal punto in cui è stata arrestata senza compromettere la coerenza dei dati. Il comando seguente illustra come usare l'opzione resume.

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

Per altre informazioni sulla migrazione dei dati alla destinazione e sulla migrazione in tempo reale, vedere la demo del replicante Arcion.

Passaggi successivi