Zelfstudie: Uw gegevens migreren naar een Cassandra-API account

VAN TOEPASSING OP: Cassandra-API

Als ontwikkelaar hebt u mogelijk bestaande Cassandra-workloads die on-premises worden uitgevoerd of in de cloud, die u mogelijk wilt migreren naar Azure. U kunt dergelijke workloads migreren naar een Cassandra-API-account in Azure Cosmos DB. In deze zelfstudie vindt u instructies over verschillende opties voor het migreren van Apache Cassandra-gegevens naar het Cassandra-API-account in Azure Cosmos DB.

Deze zelfstudie bestaat uit de volgende taken:

  • Plan voor migratie
  • Vereisten voor migratie
  • Gegevens migreren met behulp van de cqlsh COPY opdracht
  • Gegevens migreren met Spark

Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan voordat u begint.

Vereisten voor migratie

  • Maak een schatting van de doorvoervereisten: Voordat u gegevens migreert naar het Cassandra-API-account in Azure Cosmos DB, moet u een schatting maken van de doorvoervereisten voor uw workload. Over het algemeen begint u met de gemiddelde doorvoer die is vereist voor de CRUD-bewerkingen en moet u vervolgens de extra doorvoer opnemen die is vereist voor de bewerkingen Transformatiebelasting extraheren of pieken. U hebt de volgende gegevens nodig om de migratie te plannen:

    • Bestaande gegevensgrootte of een schatting van de gegevensgrootte: de minimale databasegrootte en de vereiste voor de doorvoer. Als u de gegevensgrootte voor een nieuwe toepassing inschatten, kunt u ervan uitgaan dat de gegevens gelijkmatig zijn verdeeld over de rijen en de waarde schatten door te vermenigvuldigen met de gegevensgrootte.

    • Vereiste doorvoer: Geschatte doorvoersnelheid van lees- (query/get) en schrijfbewerkingen (bijwerken/verwijderen/invoegen). Deze waarde is vereist voor het berekenen van de vereiste aanvraageenheden, samen met de gegevensgrootte van de stabiele status.

    • Het schema: Verbinding maken naar uw bestaande Cassandra-cluster via cqlsh en exporteert het schema vanuit Cassandra:

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

      Nadat u de vereisten van uw bestaande workload hebt gevonden, maakt u een Azure Cosmos DB-account, -database en -containers op basis van de verzamelde doorvoervereisten.

    • De RU-kosten voor een bewerking bepalen: u kunt de RU's bepalen met behulp van een van de SDK's die worden ondersteund door de Cassandra-API. In dit voorbeeld ziet u de .NET-versie van het ophalen van RU-kosten.

      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}");
        }
      
  • Toewijzen van de vereiste doorvoer: Azure Cosmos DB kan opslag en doorvoer automatisch schalen als uw vereisten veranderen. U kunt uw doorvoer schatten met behulp van de calculator voor aanvraageenheden en gegevensopslag.

  • Tabellen maken in het Cassandra-API account: Voordat u begint met het migreren van gegevens, maakt u vooraf alle tabellen van de Azure Portal of van cqlsh . Als u migreert naar een Azure Cosmos DB-account met doorvoer op databaseniveau, moet u een partitiesleutel verstrekken wanneer u de containers maakt.

  • Doorvoer verhogen: de duur van de gegevensmigratie is afhankelijk van de hoeveelheid doorvoer die u voor de tabellen hebt ingericht in Azure Cosmos DB. Verhoog de doorvoer voor de duur van de migratie. Met een hogere doorvoer voorkomt u frequentielimieten en kost migreren minder tijd. Nadat u de migratie hebt voltooid, verlaagt u de doorvoer om kosten te besparen. We raden u ook aan om het Azure Cosmos DB in dezelfde regio als uw brondatabase.

  • TLS inschakelen: Voor Azure Cosmos DB gelden strenge beveiligingsvereisten en -normen. Schakel TLS in wanneer u uw account gebruikt. Wanneer u CQL gebruikt met SSH, hebt u een optie om TLS-gegevens op te geven.

Mogelijkheden voor migreren van gegevens

U kunt gegevens verplaatsen van bestaande Cassandra-workloads naar Azure Cosmos DB met behulp van de cqlsh COPY opdracht of met behulp van Spark.

Gegevens migreren met behulp van de cqlsh-opdracht COPY

Gebruik de CQL COPY-opdracht om lokale gegevens te kopiëren naar het Cassandra-API-account in Azure Cosmos DB.

  1. Als u zeker wilt zijn dat uw CSV-bestand de juiste bestandsstructuur bevat, gebruikt u de opdracht om gegevens rechtstreeks vanuit de Cassandra-brontabel te exporteren naar een CSV-bestand (zorg ervoor dat cqlsh met de juiste referenties is verbonden met de COPY TO brontabel):

    COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;   
    
  2. Haal nu de Cassandra-API van uw account connection string op:

    • Meld u aan bij Azure Portalen ga naar uw Azure Cosmos DB account.

    • Open het deelvenster Verbindingsreeks. Hier ziet u alle informatie die u nodig hebt om verbinding te maken met uw Cassandra-API-account vanuit cqlsh .

  3. Meld u aan cqlsh bij met behulp van de verbindingsgegevens van de portal.

  4. Gebruik de CQL COPY FROM opdracht om te kopiëren data.csv (nog steeds in de hoofdmap van de gebruiker waarin cqlsh is geïnstalleerd):

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

Belangrijk

Alleen de opensource Apache Cassandra-versie van CQLSH COPY wordt ondersteund. Datastax Enterprise-versies (DSE) van CQLSH kunnen fouten ondervinden.

Gegevens migreren met Spark

Gebruik de volgende stappen om gegevens met Spark naar het Cassandra API-account te migreren:

  1. Een cluster Azure Databricks of een cluster Azure HDInsight inrichten.

  2. Verplaats gegevens naar het Cassandra-API eindpunt. Raadpleeg deze handleiding voor migratie met Azure Databricks.

Het migreren van gegevens met behulp van Spark-taken wordt aanbevolen als er gegevens aanwezig zijn in een bestaand cluster op virtuele Azure-machines of in een andere cloud. Hiervoor moet u Spark instellen als intermediair voor een een-time of regelmatige opname. U kunt deze migratie versnellen met behulp Azure ExpressRoute connectiviteit tussen uw on-premises omgeving en Azure.

Livemigratie

Als een migratie zonder downtime vanuit een systeemeigen Apache Cassandra-cluster is vereist, raden we u aan om dubbele schrijf schrijfgegevens en een afzonderlijke bulklading van gegevens te configureren om historische gegevens te migreren. We hebben het implementeren van dit patroon eenvoudiger gemaakt door een opensource-proxy voor dual-write te bieden, zodat er minimale wijzigingen in de toepassingscode mogelijk zijn. Bekijk ons artikel over livemigratie met behulp van een dual-write proxy en Apache Spark meer informatie over het implementeren van dit patroon.

Resources opschonen

Wanneer u ze niet meer nodig hebt, kunt u de resourcegroep, het Azure Cosmos DB account en alle gerelateerde resources verwijderen. Daarvoor selecteert u de resourcegroep voor de virtuele machine en selecteert u Verwijderen. Vervolgens bevestigt u de naam van de resourcegroep die u wilt verwijderen.

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u uw gegevens migreert naar een Cassandra-API-account in Azure Cosmos DB. U kunt nu meer te weten komen over andere concepten in Azure Cosmos DB: