Tutorial: Migrieren Ihrer Daten zu einem Cassandra-API-Konto in Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Entwickler verfügen unter Umständen über lokal oder in der Cloud ausgeführte Cassandra-Workloads, die sie zu Azure migrieren möchten.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. Solche Workloads können zu einem Cassandra-API-Konto in Azure Cosmos DB migriert werden.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. Dieses Tutorial enthält Informationen zu verschiedenen Optionen, die für die Migration von Apache Cassandra-Daten zum Cassandra-API-Konto in Azure Cosmos DB zur Verfügung stehen.This tutorial provides instructions on different options available to migrate Apache Cassandra data into the Cassandra API account in Azure Cosmos DB.

Dieses Tutorial enthält die folgenden Aufgaben:This tutorial covers the following tasks:

  • Planen der MigrationPlan for migration
  • Voraussetzungen für die MigrationPrerequisites for migration
  • Migrieren von Daten mithilfe des cqlsh-Befehls COPYMigrate data using cqlsh COPY command
  • Migrieren von Daten mithilfe von SparkMigrate data using Spark

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.If you don’t have an Azure subscription, create a free account before you begin.

Voraussetzungen für die MigrationPrerequisites for migration

  • Ermitteln des voraussichtlichen Durchsatzbedarfs: Ermitteln Sie den voraussichtlichen Durchsatzbedarf für Ihre Workload, bevor Sie Daten zum Cassandra-API-Konto in Azure Cosmos DB migrieren.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. Im Allgemeinen wird für den Einstieg der für CRUD-Vorgänge erforderliche durchschnittliche Durchsatz empfohlen. Fügen Sie später den zusätzlich für ETL (Extrahieren, Transformieren und Laden) oder für Vorgänge mit Lastspitzen erforderlichen Durchsatz hinzu.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. Sie benötigen die folgenden Details für die Planung der Migration:You need the following details to plan for migration:

    • Größe der vorhandenen Daten oder geschätzte Datengröße: Legen Sie die Mindestanforderungen für die Datenbankgröße und den Durchsatz fest.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Wenn Sie die Datengröße für eine neue Anwendung schätzen, können Sie davon ausgehen, dass die Daten gleichmäßig über die Zeilen verteilt sind und den Wert durch Multiplizieren mit der Datengröße schätzen.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.

    • Erforderlicher Durchsatz: Geben Sie die ungefähre Durchsatzrate für Lesen (Abfragen/Abrufen) und Schreiben (Aktualisieren/Löschen/Einfügen) an.Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Dieser Wert ist erforderlich, um die erforderlichen Anforderungseinheiten zusammen mit der Größe der Daten mit festem Zustand zu berechnen.This value is required to compute the required request units along with steady state data size.

    • Das Schema: Stellen Sie über cqlsh eine Verbindung mit Ihrem Cassandra-Cluster her, und exportieren Sie das Schema aus 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
      

      Nachdem Sie die Anforderungen Ihrer Workload ermittelt haben, sollten Sie anhand der gesammelten Durchsatzanforderungen ein Azure Cosmos-Konto, eine Datenbank und Container erstellen.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.

    • Bestimmen der RU-Gebühr für einen Vorgang: Sie können die RUs mithilfe eines der von der Cassandra-API unterstützten SDKs ermitteln.Determine the RU charge for an operation: You can determine the RUs by using any of the SDKs supported by the Cassandra API. Dieses Beispiel zeigt die .NET-Version zum Abrufen von RU-Gebühren.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}");
        }
      
  • Zuordnen des erforderlichen Durchsatzes: Azure Cosmos DB kann Speicher und Durchsatz automatisch gemäß Ihren wachsenden Anforderungen skalieren.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. Sie können Ihre Durchsatzanforderungen mit dem Anforderungseinheitenrechner von Azure Cosmos DB schätzen.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Erstellen von Tabellen im Cassandra-API-Konto: Bevor Sie mit der Migration von Daten beginnen, erstellen Sie zunächst alle Ihre Tabellen im Azure-Portal oder mit 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. Wenn Sie als Migrationsziel ein Azure Cosmos-Konto mit Durchsatz auf Datenbankebene verwenden, geben Sie beim Erstellen der Azure Cosmos-Container einen Partitionsschlüssel an.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.

  • Erhöhen des Durchsatzes: Die Dauer der Datenmigration richtet sich nach der Durchsatzmenge, die Sie für Ihre Tabellen in Azure Cosmos DB bereitstellen.Increase throughput: The duration of your data migration depends on the amount of throughput you provisioned for the tables in Azure Cosmos DB. Erhöhen Sie den Durchsatz für die Dauer der Migration.Increase the throughput for the duration of migration. Mit dem höheren Durchsatz können Sie eine Ratenbegrenzung vermeiden und Migrationen in kürzerer Zeit durchführen.With the higher throughput, you can avoid rate limiting and migrate in less time. Nachdem die Migration abgeschlossen ist, können Sie den Durchsatz wieder verringern, um Kosten zu sparen.After you've completed the migration, decrease the throughput to save costs. Das Azure Cosmos-Konto sollte sich außerdem in der gleichen Region befinden wie Ihre Quelldatenbank.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Aktivieren von SSL: Für Azure Cosmos DB gelten strenge Sicherheitsanforderungen und -standards.Enable SSL: Azure Cosmos DB has strict security requirements and standards. Achten Sie darauf, SSL für die Interaktion mit Ihrem Konto zu aktivieren.Be sure to enable SSL when you interact with your account. Wenn Sie CQL mit SSH verwenden, können Sie SSL-Informationen bereitstellen.When you use CQL with SSH, you have an option to provide SSL information.

Optionen zum Migrieren von DatenOptions to migrate data

Mithilfe der folgenden Optionen können Sie Daten aus vorhandenen Cassandra-Workloads nach Azure Cosmos DB verschieben:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Migrieren von Daten mithilfe des cqlsh-Befehls COPYMigrate data using cqlsh COPY command

Der CQL-Befehl COPY wird verwendet, um lokale Daten in das Cassandra-API-Konto in Azure Cosmos DB zu kopieren.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Führen Sie zum Kopieren von Daten die folgenden Schritte aus:Use the following steps to copy data:

  1. Rufen Sie die Informationen zur Verbindungszeichenfolge für das Cassandra-API-Konto ab:Get your Cassandra API account’s connection string information:

    • Melden Sie sich beim Azure-Portal an, und navigieren Sie zu Ihrem Azure Cosmos-Konto.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Öffnen Sie den Bereich Verbindungszeichenfolge. Sie finden dort alle Informationen, die Sie benötigen, um Ihr Cassandra-API-Konto per cqlsh zu verbinden.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Melden Sie sich bei cqlsh mit den Verbindungsinformationen aus dem Portal an.Sign in to cqlsh using the connection information from the portal.

  3. Kopieren Sie mit dem CQL-Befehl COPY lokale Daten zum Cassandra API-Konto.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Migrieren von Daten mithilfe von SparkMigrate data using Spark

Führen Sie die folgenden Schritte aus, um Daten mithilfe von Spark zum Cassandra-API-Konto zu migrieren:Use the following steps to migrate data to the Cassandra API account with Spark:

Das Migrieren von Daten mithilfe von Spark-Aufträgen empfiehlt sich, wenn sich Ihre Daten in einem vorhandenen Cluster auf virtuellen Azure-Computern oder in einer anderen Cloud befinden.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. Bei dieser Option muss Spark für die einmalige oder regelmäßige Erfassung zwischengeschaltet werden.This option requires Spark to be set up as an intermediary for one time or regular ingestion. Sie können diese Migration mithilfe von Azure ExpressRoute-Verbindungen zwischen der lokalen Umgebung und Azure beschleunigen.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Bereinigen von RessourcenClean up resources

Wenn Sie die Ressourcengruppe, das Azure Cosmos-Konto und die dazugehörigen Ressourcen nicht mehr benötigen, können Sie sie löschen.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. Wählen Sie dazu die Ressourcengruppe für den virtuellen Computer und anschließend Löschen aus, und bestätigen Sie den Namen der zu löschenden Ressourcengruppe.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Nächste SchritteNext steps

In diesem Tutorial haben Sie gelernt, wie Sie Ihre Daten zu einem Cassandra-API-Konto in Azure Cosmos DB migrieren.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. Im nächsten Artikel finden Sie Informationen zu weiteren Azure Cosmos DB-Konzepten:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: