Självstudie: Migrera data till ett API för Cassandra konto

GÄLLER för: API för Cassandra

Som utvecklare kan du ha befintliga Cassandra-arbetsbelastningar som körs lokalt eller i molnet och du kan vilja migrera dem till Azure. Du kan migrera sådana arbetsbelastningar till ett Cassandra-API-konto i Azure Cosmos DB. Den här självstudien ger instruktioner för olika alternativ som finns för att migrera Apache Cassandra-data till Cassandra-API-kontot i Azure Cosmos DB.

Den här självstudien omfattar följande uppgifter:

  • Planera för migrering
  • Förutsättningar för migrering
  • Migrera data med hjälp av cqlsh COPY kommandot
  • Migrera data med Spark

Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.

Förutsättningar för migrering

  • Beräkna dina dataflödesbehov: Innan du migrerar data till Cassandra-API-kontot i Azure Cosmos DB bör du beräkna dataflödesbehoven för din arbetsbelastning. I allmänhet börjar du med det genomsnittliga dataflödet som krävs av CRUD-åtgärderna och inkluderar sedan det ytterligare dataflöde som krävs för extrahering av transformeringsbelastningen eller toppar. Du behöver följande information för att planera för migreringen:

    • Befintlig datastorlek eller beräknad datastorlek: Definierar den minsta databasstorleken och det minsta dataflödet som krävs. Om du beräknar datastorleken för ett nytt program kan du anta att data är jämnt fördelade mellan raderna och uppskatta värdet genom att multiplicera med datastorleken.

    • Nödvändigt dataflöde: Ungefärlig dataflödeshastighet för läs- (fråga/hämta) och skrivåtgärder (uppdatera/ta bort/infoga). Det här värdet krävs för att beräkna de enheter för begäran som krävs, tillsammans med datastorleken i stabilt tillstånd.

    • Schemat: Anslut till ditt befintliga Cassandra-kluster via cqlsh och exportera schemat från Cassandra:

      cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql
      

      När du har identifierat kraven för din befintliga arbetsbelastning skapar du ett Azure Cosmos DB-konto, databas och containrar enligt kraven för det insamlade dataflödet.

    • Fastställ RU-avgiften för en åtgärd: Du kan fastställa RU med hjälp av SDK:erna som stöds av Cassandra-API. I det här exemplet används .NET-versionen för att hämta RU-kostnaden.

      var tableInsertStatement = table.Insert(sampleEntity);
      var insertResult = await tableInsertStatement.ExecuteAsync();
      
      foreach (string key in insertResult.Info.IncomingPayload)
        {
           byte[] valueInBytes = customPayload[key];
           double value = Encoding.UTF8.GetString(valueInBytes);
           Console.WriteLine($"CustomPayload:  {key}: {value}");
        }
      
  • Allokera det nödvändiga dataflödet: Azure Cosmos DB kan automatiskt skala lagringen och dataflödet allteftersom dina behov ökar. Du kan beräkna dataflödesbehovet med hjälp av RU-kalkylatorn för Azure Cosmos DB.

  • Skapa tabeller i API för Cassandra konto: Innan du börjar migrera data skapar du alla tabeller i förväg från Azure Portal eller från cqlsh . Om du migrerar till ett Azure Cosmos DB-konto som har dataflöde på databasnivå måste du ange en partitionsnyckel när du skapar containrarna.

  • Öka dataflödet: Hur lång tid datamigreringen tar beror på hur stort dataflöde du etablerade för tabellerna i Azure Cosmos DB. Öka dataflödet under migreringen. Med ett högre dataflöde kan du undvika begränsningar och migrera snabbare. När du har slutfört migreringen minskar du dataflödet för att spara kostnader. Vi rekommenderar också att du har Azure Cosmos DB-kontot i samma region som källdatabasen.

  • Aktivera TLS: Azure Cosmos DB har strikta säkerhetskrav och säkerhetsstandarder. Se till att aktivera TLS när du interagerar med ditt konto. När du använder CQL med SSH kan du ange TLS-information.

Alternativ för att migrera data

Du kan flytta data från befintliga Cassandra-arbetsbelastningar till Azure Cosmos DB med cqlsh COPY hjälp av kommandot eller med hjälp av Spark.

Migrera data med hjälp av copy-kommandot i cqlsh

Använd copy-kommandot i CQL för att kopiera lokala data till API för Cassandra konto i Azure Cosmos DB.

  1. För att vara säker på att csv-filen innehåller rätt filstruktur använder du kommandot för att exportera data direkt från Cassandra-källtabellen till en csv-fil (se till att cqlsh är anslutet till källtabellen med lämpliga COPY TO autentiseringsuppgifter):

    COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;   
    
  2. Hämta nu API för Cassandra-kontots information om anslutningssträngen:

    • Logga in på Azure Portaloch gå till ditt Azure Cosmos DB konto.

    • Öppna fönstret Anslutningssträng. Här ser du all information som du behöver för att ansluta till ditt API för Cassandra konto från cqlsh .

  3. Logga in på cqlsh med anslutningsinformationen från portalen.

  4. Använd kommandot CQL COPY FROM för att kopiera data.csv (finns fortfarande i användarens rotkatalog där cqlsh är installerat):

    COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
    

Viktigt

Endast Apache Cassandra-versionen av CQLSH COPY med öppen källkod stöds. DSE-versioner (Datastax Enterprise) av CQLSH kan stöta på fel.

Migrera data med Spark

Använd följande steg för att migrera data till Cassandra-API-kontot med Spark:

  1. Etablera ett Azure Databricks eller ett Azure HDInsight kluster.

  2. Flytta data till API för Cassandra slutpunkten. Se den här guiden för migrering med Azure Databricks.

Vi rekommenderar att du migrerar data med hjälp av Spark-jobb om du har data som finns i ett befintligt kluster på virtuella Azure-datorer eller i ett annat moln. Om du vill göra detta måste du konfigurera Spark som mellanhand för en eller vanlig inmatning. Du kan påskynda migreringen genom att Azure ExpressRoute en anslutning mellan din lokala miljö och Azure.

Direktmigrering

Om det krävs en migrering utan driftstopp från ett inbyggt Apache Cassandra-kluster rekommenderar vi att du konfigurerar dubbla skrivningar och en separat massinläsning av data för att migrera historiska data. Vi har gjort det enklare att implementera det här mönstret genom att tillhandahålla en proxy med dubbla skrivåtgärder med öppen källkod som möjliggör minimala ändringar i programkoden. Ta en titt på vår artikel om direktmigrering med proxy med dubbla skrivåtgärder och Apache Spark mer information om hur du implementerar det här mönstret.

Rensa resurser

När de inte längre behövs kan du ta bort resursgruppen, Azure Cosmos DB-kontot och alla relaterade resurser. Om du vill göra detta väljer du resursgruppen för den virtuella datorn. Välj sedan Ta bort och kontrollera namnet på resursgruppen som du vill ta bort.

Nästa steg

I den här självstudien har du lärt dig hur du migrerar data till ett API för Cassandra-konto i Azure Cosmos DB. Nu kan du lära dig mer om andra begrepp i Azure Cosmos DB: