Tutorial: Migración de los datos a una cuenta de Cassandra API en Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Como desarrollador, es posible que tenga cargas de trabajo de Cassandra existentes que se ejecutan de forma local o en la nube y puede que desee migrarlas a 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. Puede migrar estas cargas a una cuenta de Cassandra API en Azure Cosmos DB.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. Este tutorial proporciona instrucciones sobre las diferentes opciones disponibles para migrar datos de Apache Cassandra a la cuenta de Cassandra API en 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.

En este tutorial se describen las tareas siguientes:This tutorial covers the following tasks:

  • Planear la migraciónPlan for migration
  • Requisitos previos para la migraciónPrerequisites for migration
  • Migrar datos mediante el comando COPY de cqlshMigrate data using cqlsh COPY command
  • Migrar datos con SparkMigrate data using Spark

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don’t have an Azure subscription, create a free account before you begin.

Requisitos previos para la migraciónPrerequisites for migration

  • Cálculo de las necesidades de rendimiento: Antes de migrar datos a la cuenta de Cassandra API en Azure Cosmos DB, debe calcular las necesidades de rendimiento de la carga de trabajo.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. En general, se recomienda comenzar con el rendimiento medio requerido por las operaciones CRUD y después incluir el rendimiento adicional necesario para las operaciones de picos o Extraer carga de transformación (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. Necesita los siguientes detalles para planear la migración:You need the following details to plan for migration:

    • Tamaño de datos existente o tamaño de datos estimado: Define el requisito de rendimiento y de tamaño mínimo de la base de datos.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Si realiza la estimación de tamaño de los datos para una nueva aplicación, puede asumir que los datos se distribuyen uniformemente entre las filas y calcular el valor multiplicando con el tamaño de los datos.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.

    • Rendimiento necesario: Tasa de rendimiento de lectura (consultar/obtener) y escritura (actualizar/eliminar/insertar) aproximada.Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Este valor es necesario para calcular las unidades de solicitud necesarios junto con el tamaño de datos de estado estable.This value is required to compute the required request units along with steady state data size.

    • El esquema: Conéctese a su clúster de Cassandra existente mediante cqlsh y exporte el esquema desde 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
      

      Después de identificar los requisitos de carga de trabajo existentes, debe crear una cuenta de Azure Cosmos DB, una base de datos y varios contenedores según los requisitos de rendimiento recopilados.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.

    • Determinación del cargo de RU para una operación: Puede determinar las RU mediante el uso de cualquiera de los SDK compatible con 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. En este ejemplo se muestra la versión de .NET de la obtención de cargos de la unidad de solicitud.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}");
        }
      
  • Asignación del rendimiento necesario: Azure Cosmos DB puede escalar automáticamente el almacenamiento y rendimiento a medida que crecen sus necesidades.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. Puede estimar sus necesidades de rendimiento mediante el uso de la Calculadora de unidades de solicitud de Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Creación de tablas en la cuenta de Cassandra API: Antes de comenzar la migración de datos, cree previamente todas las tablas desde Azure Portal o desde 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. Si va a migrar a una cuenta de Azure Cosmos DB que tiene un rendimiento de nivel de base de datos, asegúrese de proporcionar una clave de partición al crear los contenedores de Azure Cosmos DB.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.

  • Aumento del rendimiento: La duración de la migración de datos depende de la cantidad de rendimiento aprovisionado para las tablas de 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. Aumente el rendimiento de la duración de la migración.Increase the throughput for the duration of migration. Gracias al mayor rendimiento, puede evitar la limitación de velocidad y realizar la migración en menos tiempo.With the higher throughput, you can avoid rate limiting and migrate in less time. Después de haber completado la migración, reduzca el rendimiento para ahorrar costos.After you've completed the migration, decrease the throughput to save costs. También se recomienda tener la cuenta de Azure Cosmos DB en la misma región que la base de datos de origen.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Habilitación de SSL: Azure Cosmos DB tiene estándares y requisitos de seguridad estrictos.Enable SSL: Azure Cosmos DB has strict security requirements and standards. No olvide habilitar SSL al interactuar con la cuenta.Be sure to enable SSL when you interact with your account. Al usar CQL con SSH, tiene una opción para proporcionar información de SSL.When you use CQL with SSH, you have an option to provide SSL information.

Opciones para migrar datosOptions to migrate data

Puede mover los datos de cargas de trabajo existentes de Cassandra para Azure Cosmos DB mediante el uso de las siguientes opciones:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Migrar datos mediante el comando COPY de cqlshMigrate data using cqlsh COPY command

El comando COPY de CQL se usa para copiar datos locales en la cuenta de Cassandra API en Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Use los siguientes pasos para copiar datos:Use the following steps to copy data:

  1. Obtenga la información de cadena de conexión de su cuenta de Cassandra API:Get your Cassandra API account’s connection string information:

    • Inicie sesión en Azure Portal y vaya a la cuenta de Azure Cosmos DB.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Abra el panel Cadena de conexión que contenga toda la información que necesite para conectarse a su cuenta de API de Cassandra desde cqlsh.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Inicie sesión en cqlsh mediante la información de conexión desde el portal.Sign in to cqlsh using the connection information from the portal.

  3. Use el comando COPY de CQL para copiar datos locales a la cuenta de API de Cassandra.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Migrar datos con SparkMigrate data using Spark

Siga estos pasos para migrar datos a la cuenta de Cassandra API en Azure Cosmos DB con Spark:Use the following steps to migrate data to the Cassandra API account with Spark:

La migración de datos mediante el uso de trabajos de Spark es una opción recomendada si tiene datos que residen en un clúster existente en máquinas virtuales de Azure o cualquier otra nube.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. Esta opción requiere que Spark se configure como intermediario para la ingesta única o regular.This option requires Spark to be set up as an intermediary for one time or regular ingestion. Puede acelerar la migración mediante el uso de conectividad de Azure ExpressRoute entre local y Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Limpieza de recursosClean up resources

Cuando ya no los necesite, puede eliminar el grupo de recursos, la cuenta de Azure Cosmos DB y todos los recursos relacionados.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. Para ello, seleccione el grupo de recursos de la máquina virtual, seleccione Eliminar y luego confirme el nombre del grupo de recursos que va a eliminar.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Pasos siguientesNext steps

En este tutorial, ha aprendido cómo migrar los datos a una cuenta de Cassandra API en Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. Ahora puede continuar con el siguiente artículo para obtener información sobre otros conceptos de Azure Cosmos DB:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: