Esercitazione: eseguire la migrazione dei dati in un account dell'API Cassandra in Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Gli sviluppatori potrebbero avere carichi di lavoro Cassandra esistenti in esecuzione in locale o nel cloud e volerne eseguire la migrazione in 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. È possibile eseguire la migrazione di questi carichi di lavoro in un account dell'API Cassandra in Azure Cosmos DB.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. Questa esercitazione fornisce istruzioni sulle diverse opzioni disponibili per eseguire la migrazione dei dati Apache Cassandra nell'account dell'API Cassandra di 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.

Questa esercitazione illustra le attività seguenti:This tutorial covers the following tasks:

  • Pianificare la migrazionePlan for migration
  • Prerequisiti per la migrazionePrerequisites for migration
  • Eseguire la migrazione dei dati usando il comando cqlsh COPYMigrate data using cqlsh COPY command
  • Eseguire la migrazione dei dati usando SparkMigrate data using Spark

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don’t have an Azure subscription, create a free account before you begin.

Prerequisiti per la migrazionePrerequisites for migration

  • Elaborare una stima delle esigenze di velocità effettiva: prima di eseguire la migrazione dei dati nell'account dell'API Cassandra in Azure Cosmos DB, è necessario elaborare una stima delle esigenze di velocità effettiva del carico di lavoro.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 generale, è consigliabile iniziare con la velocità effettiva media necessaria per le operazioni CRUD, quindi includere la velocità effettiva aggiuntiva necessaria per le operazioni picco o di estrazione, trasformazione e caricamento (ETL).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. Per pianificare la migrazione, sono necessari i dettagli seguenti:You need the following details to plan for migration:

    • Dimensioni dei dati esistenti o stimate: definisce le dimensioni minime del database e i requisiti di velocità effettiva.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Se si sta stimando la dimensione dei dati per una nuova applicazione, è possibile presumere che i dati vengano distribuiti uniformemente tra le righe e stimare il valore moltiplicando la dimensione dei dati.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.

    • Velocità effettiva richiesta: la velocità effettiva approssimativa in lettura (query/get) e in scrittura (update/delete/insert).Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Questo valore è obbligatorio per calcolare le unità richiesta necessarie insieme alle dimensioni dei dati con stato stabile.This value is required to compute the required request units along with steady state data size.

    • Schema: connettersi al cluster Cassandra esistente tramite cqlsh ed esportare lo schema da 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
      

      Dopo avere identificato i requisiti del carico di lavoro esistente, è necessario creare un account, un database e i contenitori Azure Cosmos in base ai requisiti di velocità effettiva raccolti.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.

    • Determinare gli addebiti di UR per un'operazione: è possibile determinare le UR usando uno degli SDK supportati dall'API Cassandra.Determine the RU charge for an operation: You can determine the RUs by using any of the SDKs supported by the Cassandra API. Questo esempio illustra la versione .NET per ottenere gli addebiti delle unità richiesta.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}");
        }
      
  • Allocare la velocità effettiva richiesta: Azure Cosmos DB può ridimensionare automaticamente l'archiviazione e la velocità effettiva man mano che aumentano i requisiti.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. È possibile stimare le esigenze di velocità effettiva usando il calcolatore di unità di richieste di Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Creare tabelle nell'account dell'API Cassandra: prima di iniziare la migrazione dei dati, creare tutte le tabelle dal portale di Azure o da 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. Se si esegue la migrazione a un account Azure Cosmos con velocità effettiva a livello di database, assicurarsi di fornire una chiave di partizione quando si creano i contenitori di Azure Cosmos.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.

  • Aumentare la velocità effettiva: la durata della migrazione dei dati dipende dalla velocità effettiva di cui è stato eseguito il provisioning per le tabelle 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. Aumentare la velocità effettiva per la durata della migrazione.Increase the throughput for the duration of migration. Con una velocità effettiva più elevata, è possibile evitare la limitazione di velocità e completare più rapidamente la migrazione.With the higher throughput, you can avoid rate limiting and migrate in less time. Dopo avere completato la migrazione, diminuire la velocità effettiva per ridurre i costi.After you've completed the migration, decrease the throughput to save costs. È consigliabile anche disporre di account Azure Cosmos nella stessa area del database di origine.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Abilitare SSL: Azure Cosmos DB presenta standard e requisiti di sicurezza restrittivi.Enable SSL: Azure Cosmos DB has strict security requirements and standards. Assicurarsi di abilitare SSL quando si interagisce con l'account.Be sure to enable SSL when you interact with your account. Quando si usa CQL con SSH, è possibile fornire le informazioni SSL.When you use CQL with SSH, you have an option to provide SSL information.

Opzioni per la migrazione dei datiOptions to migrate data

È possibile spostare dati da carichi di lavoro esistenti di Cassandra in Azure Cosmos DB usando le opzioni seguenti:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Eseguire la migrazione dei dati usando il comando cqlsh COPYMigrate data using cqlsh COPY command

Il comando COPY di CQL viene usato per copiare i dati locali nell'account dell'API Cassandra in Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Per copiare i dati, usare la procedura seguente:Use the following steps to copy data:

  1. Ottenere informazioni sulla stringa di connessione dell'account dell'API Cassandra:Get your Cassandra API account’s connection string information:

    • Accedere al portale di Azure e passare all'account Azure Cosmos.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Aprire il riquadro Stringa di connessione che contiene tutte le informazioni necessarie per connettersi all'account dell'API Cassandra da cqlsh.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Accedere a cqlsh usando le informazioni di connessione del portale.Sign in to cqlsh using the connection information from the portal.

  3. Usare il comando COPY di CQL per copiare i dati locali nell'account dell'API Cassandra.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Eseguire la migrazione dei dati usando SparkMigrate data using Spark

Usare questa procedura per eseguire la migrazione dei dati nell'account dell'API Cassandra con Spark:Use the following steps to migrate data to the Cassandra API account with Spark:

La migrazione dei dati usando i processi Spark è un'opzione consigliata se i dati risiedono in un cluster esistente nelle macchine virtuali di Azure o in qualsiasi altro 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. Per questa opzione è necessario impostare Spark come intermediario per l'inserimento una sola volta o su base regolare.This option requires Spark to be set up as an intermediary for one time or regular ingestion. È possibile accelerare la migrazione usando la connettività Azure ExpressRoute tra locale e Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Pulire le risorseClean up resources

Quando non servono più è possibile eliminare il gruppo di risorse, l'account Azure Cosmos e tutte le risorse correlate.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. A tale scopo, selezionare il gruppo di risorse per la macchina virtuale, selezionare Elimina e quindi confermare il nome del gruppo di risorse da eliminare.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Passaggi successiviNext steps

In questa esercitazione si è appreso come migrare i dati utente in un account dell'API Cassandra in Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. È ora possibile passare all'articolo seguente per apprendere altri concetti di Azure Cosmos DB:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: