Руководство по Перенос данных в учетную запись API Cassandra в Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Как у разработчика у вас могут существовать рабочие нагрузки Cassandra, выполняемые локально или в облаке, и может понадобиться перенести их в 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. Такие рабочие нагрузки можно перенести в учетную запись API Cassandra в Azure Cosmos DB.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. В этом руководстве приведены инструкции к различным методам переноса данных Apache Cassandra в учетную запись API Cassandra в 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.

В рамках этого руководства рассматриваются следующие задачи:This tutorial covers the following tasks:

  • Планирование миграцииPlan for migration
  • Предварительные требования для миграцииPrerequisites for migration
  • Перенос данных с помощью команды cqlsh COPYMigrate data using cqlsh COPY command
  • Перенос данных с помощью SparkMigrate data using Spark

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.If you don’t have an Azure subscription, create a free account before you begin.

Предварительные требования для миграцииPrerequisites for migration

  • Оцените требования к пропускной способности. Прежде чем переносить данные в учетную запись API Cassandra в Azure Cosmos DB, следует оценить потребности в пропускной способности рабочей нагрузки.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. Как правило, рекомендуется начинать со средней пропускной способности, требуемой для операций CRUD, а затем включить дополнительную пропускную способность, необходимую для операций извлечения, преобразования и загрузки (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. Для планирования миграции необходимо знать следующее.You need the following details to plan for migration:

    • Текущий или предполагаемый размер данных. Определяет минимальное требование к размеру базы данных и пропускной способности.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Если вы оцениваете размер данных для нового приложения, можно предположить, что данные равномерно распределены по строкам, и получить примерное значение путем умножения на размер данных.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.

    • Необходимая пропускная способность. Приблизительная пропускная способность для операций чтения (запрос, получение) и записи (изменение, удаление, вставка).Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Это значение необходимо для вычисления требуемого количества единиц, а также размера данных в устойчивом состоянии.This value is required to compute the required request units along with steady state data size.

    • Схема. Подключитесь к существующему кластеру Cassandra с помощью cqlsh и экспортируйте схему из 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
      

      Определив требования существующей рабочей нагрузки, необходимо создать учетную запись Azure Cosmos, базу данных и контейнеры в соответствии с полученными требованиями к пропускной способности.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.

    • Определите стоимость операции в единицах запроса. Определить ЕЗ можно с помощью любого из пакетов SDK, поддерживаемого 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. В этом примере мы используем для оценки затрат версию .NET.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}");
        }
      
  • Выделите требуемую пропускную способность. Azure Cosmos DB поддерживает автоматическое масштабирование хранилища и пропускной способности по мере роста требований.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. Вы можете оценить требуемую вам пропускную способность с помощью калькулятора единиц запроса Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Создайте таблицы в учетной записи API Cassandra. Прежде чем запустить перемещение данных, создайте все таблицы с помощью портала Azure или 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. Если вы выполняете перенос в учетную запись Azure Cosmos, обладающую пропускной способностью уровня базы данных, при создании контейнеров 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.

  • Увеличьте пропускную способность. Продолжительность перемещения данных зависит от пропускной способности, которую вы предоставите для таблиц в 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. Увеличьте пропускную способность на время выполнения миграции.Increase the throughput for the duration of migration. Более высокая пропускная способность позволяет избежать ограничения скорости и выполнить перенос быстрее.With the higher throughput, you can avoid rate limiting and migrate in less time. После переноса уменьшите пропускную способность для экономии расходов.After you've completed the migration, decrease the throughput to save costs. Также рекомендуется разместить учетную запись Azure Cosmos в том же регионе, где находится база данных-источник.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Включите протокол TLS. В Azure Cosmos DB строгие требования к безопасности и стандарты.Enable TLS: Azure Cosmos DB has strict security requirements and standards. Обязательно включите TLS при взаимодействии с учетной записью.Be sure to enable TLS when you interact with your account. При использовании CQL с SSH у вас есть возможность предоставить сведения о TLS.When you use CQL with SSH, you have an option to provide TLS information.

Варианты миграции данныхOptions to migrate data

Вы можете переместить данные из существующих рабочих нагрузок Cassandra в Azure Cosmos DB следующим образом:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Перенос данных с помощью команды cqlsh COPYMigrate data using cqlsh COPY command

Команда CQL COPY используется для копирования локальных данных в учетную запись API Cassandra в Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Выполните указанные ниже действия, чтобы копировать данные.Use the following steps to copy data:

  1. Получение сведений о строке подключения для учетной записи API CassandraGet your Cassandra API account’s connection string information:

    • Войдите на портал Azure и перейдите в учетную запись Azure Cosmos.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Откройте область Строка подключения, которая содержит все сведения, необходимые для подключения к учетной записи API Cassandra из cqlsh.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Войдите в cqhsh, используя полученные на портале сведения о подключении.Sign in to cqlsh using the connection information from the portal.

  3. Используйте команду CQL COPY, чтобы скопировать локальные данные в учетную запись API Cassandra.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Перенос данных с помощью SparkMigrate data using Spark

Для переноса данных в учетную запись API Cassandra с помощью Spark следуйте приведенным ниже инструкциям.Use the following steps to migrate data to the Cassandra API account with Spark:

Перенос данных с помощью заданий Spark рекомендуется, если у вас есть данные, хранимые в существующем кластере в виртуальных машинах Azure или в любом другом облаке.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. Для этого следует настроить Spark в качестве промежуточного звена для однократного или регулярного приема данных.This option requires Spark to be set up as an intermediary for one time or regular ingestion. Можно ускорить миграцию с помощью подключений Azure ExpressRoute между локальной сетью и Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Очистка ресурсовClean up resources

Можно удалить группу ресурсов, учетную запись Azure Cosmos и все связанные ресурсы, когда они больше не нужны.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. Для этого выберите группу ресурсов для виртуальной машины, выберите Удалить и подтвердите имя удаляемой группы ресурсов.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Дальнейшие действияNext steps

Из этого руководства вы узнали, как перенести данные в учетную запись API Cassandra в Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. Теперь можно перейти к следующей статье, чтобы узнать о других понятиях Azure Cosmos DB.You can now proceed to the following article to learn about other Azure Cosmos DB concepts: