Tutorial: Migrar seus dados para a conta da API do Cassandra no Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Como desenvolvedor, você pode ter cargas de trabalho existentes do Cassandra em execução no local ou na nuvem, mas talvez você queira migrá-las para o 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. Você pode migrar essas cargas de trabalho para um conta da API do Cassandra no Azure Cosmos DB.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. Este tutorial fornece instruções sobre as diversas opções disponíveis para migrar dados do Apache Cassandra para a conta da API do Cassandra no 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.

Este tutorial cobre as seguintes tarefas:This tutorial covers the following tasks:

  • Planejar a migraçãoPlan for migration
  • Pré-requisitos para migraçãoPrerequisites for migration
  • Migrar dados usando o comando cqlsh COPYMigrate data using cqlsh COPY command
  • Migrar dados usando SparkMigrate data using Spark

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don’t have an Azure subscription, create a free account before you begin.

Pré-requisitos para migraçãoPrerequisites for migration

  • Estime as necessidades da taxa de transferência: antes de migrar dados para a conta da API do Cassandra no Azure Cosmos DB Cassandra, você deve estimar as necessidades da taxa de transferência de sua carga de trabalho.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. Em geral, é recomendado começar com a taxa de transferência média exigida pelas operações CRUD e, em seguida, incluir a taxa de transferência adicional necessária para o Extract Transform Load (ETL) ou operações pontiagudas.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. Você precisa dos seguintes detalhes para planejar a migração:You need the following details to plan for migration:

    • Tamanho dos dados existentes ou tamanho estimado dos dados: Define o tamanho mínimo do banco de dados e o requisito de taxa de transferência.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Se você estiver estimando o tamanho dos dados para um novo aplicativo, poderá assumir que os dados são distribuídos uniformemente pelas linhas e estimar o valor multiplicando-os pelo tamanho dos dados.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.

    • Taxa de transferência necessária: Taxa de transferência aproximada de leitura (consulta/obtenção) e de gravação (atualização/exclusão/inserção).Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Esse valor é necessário para calcular as unidades de solicitação necessárias junto com o tamanho dos dados de estado estável.This value is required to compute the required request units along with steady state data size.

    • O esquema: Conecte-se ao cluster do Cassandra existente por meio do cqlsh e exporte o esquema do 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
      

      Depois de identificar os requisitos de sua carga de trabalho existente, você deve criar uma conta, banco de dados e contêineres do Azure Cosmos de acordo com os requisitos de taxa de transferência reunidos.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.

    • Determine a cobrança do RU para uma operação: é possível determinar as RUs usando o SDK compatível com a API do Cassandra.Determine the RU charge for an operation: You can determine the RUs by using any of the SDKs supported by the Cassandra API. Este exemplo mostra a versão do .NET da obtenção de custos de RU.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}");
        }
      
  • Aloque a taxa de transferência necessária: o Azure Cosmos DB pode dimensionar automaticamente o armazenamento e a taxa de transferência conforme seus requisitos aumentam.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. Você pode estimar suas necessidades de taxa de transferência usando a calculadora da unidade de solicitação do Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Criar tabelas na conta de API do Cassandra: antes de começar a migrar dados, crie previamente todas as suas tabelas no portal do Azure ou no 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 você estiver migrando para uma conta do Azure Cosmos com produtividade de nível de banco de dados, não deixe de fornecer uma chave de partição ao criar os contêineres do 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.

  • Aumentar a taxa de transferência: a duração da migração de dados depende da quantidade de taxa de transferência provisionada para as tabelas no 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 o rendimento durante a migração.Increase the throughput for the duration of migration. Com a taxa de transferência mais elevada, você pode evitar a limitação de taxa e migrar em menos tempo.With the higher throughput, you can avoid rate limiting and migrate in less time. Depois de concluir a migração, diminua a taxa de transferência para economizar custos.After you've completed the migration, decrease the throughput to save costs. Também é recomendável ter uma conta do Azure Cosmos na mesma região que seu banco de dados de origem.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Habilitar SSL: O Azure Cosmos DB tem padrões e requisitos de segurança rígidos.Enable SSL: Azure Cosmos DB has strict security requirements and standards. Certifique-se de habilitar o SSL ao interagir com sua conta.Be sure to enable SSL when you interact with your account. Quando você usar a CQL com SSH, terá a opção de fornecer informações de SSL.When you use CQL with SSH, you have an option to provide SSL information.

Opções para migrar dadosOptions to migrate data

Você pode mover dados de cargas de trabalho existentes do Cassandra para o Azure Cosmos DB usando as seguintes opções:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Migrar dados usando o comando cqlsh COPYMigrate data using cqlsh COPY command

O comando CQL COPY é usado para copiar dados locais para a conta da API do Cassandra no Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Use as etapas a seguir para copiar dados:Use the following steps to copy data:

  1. Receba as informações da string de conexão da sua conta da Cassandra:Get your Cassandra API account’s connection string information:

    • Faça login no Portal do Azure e navegue até sua conta do Azure Cosmos.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Abra o painel Connection String que contém todas as informações necessárias para se conectar à sua conta da Cassandra API a partir do cqlsh.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Entre no cqlsh usando as informações de conexão do portal.Sign in to cqlsh using the connection information from the portal.

  3. Use o comando CQL COPY para copiar dados locais para a conta da API do Cassandra.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Migrar dados usando SparkMigrate data using Spark

Use as etapas a seguir para migrar dados para a conta da API do Cassandra com o Spark:Use the following steps to migrate data to the Cassandra API account with Spark:

A migração de dados usando trabalhos do Spark é uma opção recomendada se você tiver dados residindo em um cluster existente nas máquinas virtuais do Azure ou em qualquer outra nuvem.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 opção requer que o Spark seja configurado como intermediária por um período ou ingestão regular.This option requires Spark to be set up as an intermediary for one time or regular ingestion. Você pode acelerar essa migração usando a conectividade do Microsoft Azure ExpressRoute entre o local e o Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Limpar recursosClean up resources

Quando já não forem necessários, você pode excluir o grupo de recursos, a conta do Azure Cosmos e todos os recursos relacionados.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. Para fazer isso, escolha o grupo de recursos da máquina virtual, escolha Excluir e, em seguida, confirme o nome do grupo de recursos que será excluído.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Próximas etapasNext steps

Neste tutorial, você aprendeu como migrar seus dados para a conta da API do Cassandra no Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. Agora você pode seguir para o artigo seguinte para aprender sobre outros conceitos do Azure Cosmos DB:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: