Zelfstudie: Gegevens migreren naar een Cassandra-API-account in Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Als ontwikkelaar hebt u mogelijk bestaande Cassandra-workloads die on-premises worden uitgevoerd of in de cloud, die u mogelijk wilt migreren naar Azure.As a developer, you might have existing Cassandra workloads that are running on-premises or in the cloud, and you might want to migrate them to Azure. U kunt dergelijke workloads migreren naar een Cassandra-API-account in Azure Cosmos DB.You can migrate such workloads to a 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.This tutorial provides instructions on different options available to migrate Apache Cassandra data into the Cassandra API account in Azure Cosmos DB.

Deze zelfstudie bestaat uit de volgende taken:This tutorial covers the following tasks:

  • Plan voor migratiePlan for migration
  • Vereisten voor migratiePrerequisites for migration
  • Gegevens migreren met de cqlsh-opdracht COPYMigrate data using cqlsh COPY command
  • Gegevens migreren met SparkMigrate data using Spark

Als u nog geen abonnement op Azure hebt, maak dan een gratis account aan voordat u begint.If you don’t have an Azure subscription, create a free account before you begin.

Vereisten voor migratiePrerequisites for migration

  • 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.Estimate your throughput needs: Before migrating data to the Cassandra API account in Azure Cosmos DB, you should estimate the throughput needs of your workload. In het algemeen verdient het aanbeveling om te beginnen met de gemiddelde doorvoer die is vereist voor de CRUD-bewerkingen en vervolgens de aanvullende doorvoer toe te voegen die vereist is voor ETL-bewerkingen (Extract Transform Load) of piekbewerkingen.In general, it's recommended to start with the average throughput required by the CRUD operations and then include the additional throughput required for the Extract Transform Load (ETL) or spiky operations. U hebt de volgende gegevens nodig om de migratie te plannen:You need the following details to plan for migration:

    • Bestaande gegevensgrootte of een schatting van de gegevensgrootte: de minimale databasegrootte en de vereiste voor de doorvoer.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Als u een schatting maakt van de gegevensgrootte voor een nieuwe toepassing, kunt u ervan uitgaan dat de gegevens gelijkmatig worden verdeeld over de rijen en een schatting van de waarde maken door deze te vermenigvuldigen met de gegevensgrootte.If you are estimating data size for a new application, you can assume that the data is uniformly distributed across the rows and estimate the value by multiplying with the data size.

    • Vereiste doorvoer: een schatting van de doorvoersnelheid voor lezen (query/get) en schrijven (update/delete/insert).Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Deze waarde is vereist voor het berekenen van de vereiste aanvraageenheden en de gegevensgrootte bij een stabiele toestand.This value is required to compute the required request units along with steady state data size.

    • Het schema: maak verbinding met uw bestaande Cassandra-cluster via cqlsh en exporteer het schema uit Cassandra:The schema: Connect to your existing Cassandra cluster through cqlsh and export the schema from Cassandra:

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

      Nadat u de vereisten van uw bestaande workload hebt geïdentificeerd, maakt u een Azure Cosmos-account, database en containers op basis van de verzamelde vereisten voor de doorvoer.After you identify the requirements of your existing workload, you should create an Azure Cosmos account, database, and containers according to the gathered throughput requirements.

    • 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.Determine the RU charge for an operation: You can determine the RUs by using any of the SDKs supported by the Cassandra API. In dit voorbeeld ziet u de .NET-versie van het ophalen van RU-kosten.This example shows the .NET version of getting RU charges.

      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.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. U kunt uw doorvoer schatten met behulp van de calculator voor aanvraageenheden en gegevensopslag.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Tabellen maken in het Cassandra API-account: voordat u gegevens gaat migreren, maakt u vooraf alle tabellen vanuit de Azure-portal of met cqlsh.Create tables in the Cassandra API account: Before you start migrating data, pre-create all your tables from the Azure portal or from cqlsh. Als u migreert naar een Azure Cosmos-account dat doorvoer op databaseniveau heeft, moet u een partitiesleutel opgeven bij het maken van de Azure Cosmos-containers.If you are migrating to an Azure Cosmos account that has database level throughput, make sure to provide a partition key when creating the Azure Cosmos containers.

  • Doorvoer verhogen: de duur van de gegevensmigratie is afhankelijk van de hoeveelheid doorvoer die u voor de tabellen hebt ingericht in Azure Cosmos DB.Increase throughput: The duration of your data migration depends on the amount of throughput you provisioned for the tables in Azure Cosmos DB. Verhoog de doorvoer voor de duur van de migratie.Increase the throughput for the duration of migration. Met een hogere doorvoer voorkomt u frequentielimieten en kost migreren minder tijd.With the higher throughput, you can avoid rate limiting and migrate in less time. Nadat u de migratie hebt voltooid, verlaagt u de doorvoer om kosten te besparen.After you've completed the migration, decrease the throughput to save costs. Het is ook raadzaam om het Azure Cosmos-account in dezelfde regio te plaatsen als uw brondatabase.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • TLS inschakelen: Azure Cosmos DB voldoet aan strenge beveiligings vereisten en-standaarden.Enable TLS: Azure Cosmos DB has strict security requirements and standards. Zorg ervoor dat TLS wordt ingeschakeld wanneer u met uw account communiceert.Be sure to enable TLS when you interact with your account. Wanneer u CQL gebruikt met SSH, hebt u de mogelijkheid om TLS-gegevens op te geven.When you use CQL with SSH, you have an option to provide TLS information.

Mogelijkheden voor migreren van gegevensOptions to migrate data

U kunt gegevens op de volgende manieren verplaatsen van bestaande Cassandra-workloads naar Azure Cosmos DB:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Gegevens migreren met de cqlsh-opdracht COPYMigrate data using cqlsh COPY command

De opdracht CQL COPY wordt gebruikt om lokale gegevens te kopiëren naar het Cassandra API-account in Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Voer de volgende stappen uit om gegevens te kopiëren:Use the following steps to copy data:

  1. Vraag de verbindingsreeks van uw Cassandra API-account op:Get your Cassandra API account’s connection string information:

    • Meld u aan bij de Azure-portal en ga naar uw Azure Cosmos-account.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Open het deelvenster Verbindingsreeks, met daarin alle gegevens die u nodig hebt om met behulp van cqlsh verbinding te maken met uw Cassandra API-account.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Meld u aan bij cqhsh met de verbindingsgegevens uit de portal.Sign in to cqlsh using the connection information from the portal.

  3. Gebruik de CQL-opdracht COPY om lokale gegevens te kopiëren naar het Cassandra API-account.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Gegevens migreren met SparkMigrate data using Spark

Gebruik de volgende stappen om gegevens met Spark naar het Cassandra API-account te migreren:Use the following steps to migrate data to the Cassandra API account with Spark:

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.Migrating data by using Spark jobs is a recommended option if you have data residing in an existing cluster in Azure virtual machines or any other cloud. Voor deze optie moet Spark als intermediair voor eenmalige of regelmatige gegevensopname worden ingesteld.This option requires Spark to be set up as an intermediary for one time or regular ingestion. U kunt deze migratie versnellen met behulp van Azure ExpressRoute-connectiviteit tussen on-premises en Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Resources opschonenClean up resources

U kunt de resourcegroep, het Azure Cosmos-account en alle gerelateerde resources verwijderen wanneer u ze niet meer nodig hebt.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. 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.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Volgende stappenNext steps

In deze zelfstudie hebt u geleerd hoe u gegevens migreert naar een Cassandra API-account in Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. U kunt nu doorgaan naar het volgende artikel voor meer informatie over andere concepten voor Azure Cosmos DB:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: