Migrera data från Cassandra till Azure Cosmos DB för Apache Cassandra-konto med Arcion

GÄLLER FÖR: Cassandra

API för Cassandra i Azure Cosmos DB har blivit ett bra val för företagsarbetsbelastningar som körs på Apache Cassandra av många orsaker, till exempel:

  • Inga kostnader för hantering och övervakning: Det eliminerar arbetet med att hantera och övervaka en mängd olika inställningar i OS-, JVM- och yaml-filer och deras interaktioner.

  • Betydande kostnadsbesparingar: Du kan spara kostnader med Azure Cosmos DB, vilket inkluderar kostnaden för virtuella datorer, bandbredd och eventuella tillämpliga licenser. Dessutom behöver du inte hantera datacenter, servrar, SSD-lagring, nätverk och elkostnader.

  • Möjlighet att använda befintlig kod och verktyg: Azure Cosmos DB tillhandahåller kompatibilitet på trådprotokollnivå med befintliga Cassandra-SDK:er och verktyg. Den här kompatibiliteten säkerställer att du kan använda din befintliga kodbas med Azure Cosmos DB för Apache Cassandra med enkla ändringar.

Det finns olika sätt att migrera databasarbetsbelastningar från en plattform till en annan. Arcion är ett verktyg som erbjuder ett säkert och tillförlitligt sätt att utföra nollavbrottsmigrering från andra databaser till Azure Cosmos DB. I den här artikeln beskrivs de steg som krävs för att migrera data från Apache Cassandra-databasen till Azure Cosmos DB för Apache Cassandra med Arcion.

Anteckning

Det här erbjudandet från Arcion är för närvarande i betaversion. Om du vill ha mer information kontaktar du dem på Arcion-supporten

Fördelar med att använda Arcion för migrering

Arcions migreringslösning följer en stegvis metod för att migrera komplexa driftsarbetsbelastningar. Följande är några av de viktigaste aspekterna av Arcions plan för nollavbrottsmigrering:

  • Den erbjuder automatisk migrering av affärslogik (tabeller, index, vyer) från Apache Cassandra-databasen till Azure Cosmos DB. Du behöver inte skapa scheman manuellt.

  • Arcion erbjuder hög volym och parallell databasreplikering. Det gör att både käll- och målplattformarna kan synkroniseras under migreringen med hjälp av en teknik som kallas Change-Data-Capture (CDC). Med hjälp av CDC hämtar Arcion kontinuerligt en dataström med ändringar från källdatabasen (Apache Cassandra) och tillämpar den på måldatabasen (Azure Cosmos DB).

  • Den är feltolerant och ger leverans av data exakt en gång även under ett maskinvaru- eller programvarufel i systemet.

  • Den skyddar data under överföring med hjälp av säkerhetsmetoder som TLS, kryptering.

Steg för att migrera data

I det här avsnittet beskrivs de steg som krävs för att konfigurera Arcion och migrera data från Apache Cassandra-databasen till Azure Cosmos DB.

  1. Från den dator där du planerar att installera Arcion-repliken lägger du till ett säkerhetscertifikat. Det här certifikatet krävs av Arcion-repliken för att upprätta en TLS-anslutning med det angivna Azure Cosmos DB-kontot. Du kan lägga till certifikatet med följande steg:

    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. Du kan hämta Arcion-installationen och de binära filerna antingen genom att begära en demo på Arcion-webbplatsen. Du kan också skicka ett e-postmeddelande till teamet.

    Nedladdning av arcion-replikeringsverktyg

    Arcion-replikeringsfiler

  3. Konfigurera källdatabaskonfigurationen från CLI-terminalen. Öppna konfigurationsfilen med kommandot vi conf/conn/cassandra.yml och lägg till en kommaavgränsad lista med IP-adresser för Cassandra-noderna, portnummer, användarnamn, lösenord och annan information som krävs. Följande är ett exempel på innehåll i konfigurationsfilen:

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

    Öppna Cassandra-anslutningsredigeraren

    Anslutningskonfiguration för Cassandra

    När du har fyllt i konfigurationsinformationen sparar och stänger du filen.

  4. Du kan också konfigurera källdatabasens filterfil. Filterfilen anger vilka scheman eller tabeller som ska migreras. Öppna konfigurationsfilen med vi filter/cassandra_filter.yml kommandot och ange följande konfigurationsinformation:

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

    När du har fyllt i information om databasfiltret sparar du och stänger filen.

  5. Därefter konfigurerar du måldatabaskonfigurationen. Innan du definierar konfigurationen skapar du ett Azure Cosmos DB för Apache Cassandra-konto och skapar sedan ett nyckelutrymme och en tabell för att lagra migrerade data. Eftersom du migrerar från Apache Cassandra till API för Cassandra i Azure Cosmos DB kan du använda samma partitionsnyckel som du har använt med Apache Cassandra.

  6. Innan du migrerar data ökar du containerns dataflöde till den mängd som krävs för att programmet ska kunna migrera snabbt. Du kan till exempel öka dataflödet till 100 000 RU:er. Genom att skala dataflödet innan du påbörjar migreringen kan du migrera dina data på kortare tid.

    Skala Azure Cosmos DB-containern i hela

    Minska dataflödet när migreringen är klar. Baserat på mängden lagrade data och RU:er som krävs för varje åtgärd kan du beräkna det dataflöde som krävs efter datamigreringen. Mer information om hur du beräknar de RU:er som krävs finns i Artikeln Etablera dataflöde för containrar och databaser och Beräkna RU/s med hjälp av Azure Cosmos DB-kapacitetsplaneraren .

  7. Hämta kontaktpunkt, port, användarnamn och primärt lösenord för ditt Azure Cosmos DB-konto från fönstret Anslutningssträng . Du använder dessa värden i konfigurationsfilen.

  8. Konfigurera måldatabaskonfigurationen från CLI-terminalen. Öppna konfigurationsfilen med kommandot vi conf/conn/cosmosdb.yml och lägg till en kommaavgränsad lista över värd-URI, portnummer, användarnamn, lösenord och andra obligatoriska parametrar. I följande exempel visas innehållet i konfigurationsfilen:

    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. Migrera sedan data med Arcion. Du kan köra Arcion-repliken i fullständigt läge eller ögonblicksbildsläge :

    • Fullständigt läge – I det här läget fortsätter repliken att köras efter migreringen och lyssnar efter ändringar i apache Cassandra-källsystemet. Om den identifierar några ändringar replikeras de på Azure Cosmos DB-målkontot i realtid.

    • Läget Ögonblicksbild – I det här läget kan du utföra schemamigrering och engångsdatareplikering. Realtidsreplikering stöds inte med det här alternativet.

    Med hjälp av de två lägena ovan kan migreringen utföras utan driftstopp.

  10. Om du vill migrera data från Arcion replicant CLI-terminalen kör du följande kommando:

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

    Replikeringsgränssnittet visar replikeringsstatusen. När schemamigreringen och ögonblicksbildsåtgärden är klara visar förloppet 100 %. När migreringen är klar kan du verifiera data på Azure Cosmos DB-måldatabasen.

    Utdata för Cassandra-datamigrering

  11. Eftersom du har använt fullständigt läge för migrering kan du utföra åtgärder som att infoga, uppdatera eller ta bort data i Apache Cassandra-källdatabasen. Kontrollera senare att de replikeras i realtid på Azure Cosmos DB-måldatabasen. Efter migreringen ser du till att minska dataflödet som konfigurerats för din Azure Cosmos DB-container.

  12. Du kan stoppa repliken vilken punkt som helst och starta om den med --resume-växeln . Replikeringen återupptas från den tidpunkt då den har stoppats utan att datakonsekvensen påverkas. Följande kommando visar hur du använder cv-växeln.

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

Mer information om datamigrering till mål, realtidsmigrering finns i arcionreplikeringsdemon.

Nästa steg