Samouczek: Migrowanie danych do konta interfejsu API Cassandra w usłudze Azure Cosmos DBTutorial: Migrate your data to Cassandra API account in Azure Cosmos DB

Jako deweloper być może masz istniejące obciążenia bazy danych Cassandra, które są uruchomione w środowisku lokalnym lub w chmurze, a które chcesz zmigrować na platformę 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. Możesz zmigrować te obciążenia do konta interfejsu API Cassandra w usłudze Azure Cosmos DB.You can migrate such workloads to a Cassandra API account in Azure Cosmos DB. Ten samouczek zawiera instrukcje dotyczące różnych opcji migrowania danych bazy danych Apache Cassandra do konta interfejsu API w usłudze 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.

Ten samouczek obejmuje następujące zadania:This tutorial covers the following tasks:

  • Planowanie migracjiPlan for migration
  • Wymagania wstępne dotyczące migracjiPrerequisites for migration
  • Migrowanie danych przy użyciu polecenia cqlsh COPYMigrate data using cqlsh COPY command
  • Migrowanie danych przy użyciu platformy SparkMigrate data using Spark

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.If you don’t have an Azure subscription, create a free account before you begin.

Wymagania wstępne dotyczące migracjiPrerequisites for migration

  • Szacowanie potrzebnej przepływności: przed rozpoczęciem migracji danych do konta interfejsu API Apache Cassandra w usłudze Azure Cosmos DB należy oszacować przepływność potrzebną dla obciążenia.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. Na ogół zalecane jest rozpoczęcie od średniej przepływności wymaganej przez operacje CRUD, a następnie dołączenie dodatkowej przepływności wymaganej dla operacji ETL (wyodrębnianie, transformacja, ładowanie) lub operacji powodujących gwałtowne wzrosty obciążenia.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. Do zaplanowania migracji potrzebne są następujące szczegóły:You need the following details to plan for migration:

    • Rozmiar danych istniejących lub szacowany rozmiar danych: Definiuje minimalne wymagania dotyczące rozmiaru i przepływności bazy danych.Existing data size or estimated data size: Defines the minimum database size and throughput requirement. Jeśli szacujesz rozmiar danych dla nowej aplikacji, możesz założyć, że dane są równomiernie rozłożone między wiersze i oszacować wartość, mnożąc ich liczbę przez rozmiar danych.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.

    • Wymagana przepływność: przybliżona przepływność w przypadku operacji odczytu (query/get) i zapisu (update/delete/insert).Required throughput: Approximate read (query/get) and write (update/delete/insert) throughput rate. Ta wartość jest wymagana do obliczenia wymaganych jednostek żądań wraz z rozmiarem danych w stanie stabilności.This value is required to compute the required request units along with steady state data size.

    • Schemat: połącz się z istniejącym klastrem Cassandra za pośrednictwem poleceń cqlsh i wyeksportuj schemat z bazy danych 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
      

      Po zidentyfikowaniu wymagań dotyczących istniejącego obciążenia musisz utworzyć konto usługi Azure Cosmos, bazę danych i kontenery zgodnie z zebranymi wymaganiami dotyczącymi przepływności.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.

    • Określenie opłaty za jednostkę żądania dla operacji: jednostki żądań możesz określić przy użyciu dowolnego zestawu SDK obsługiwanego przez interfejs 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. W tym przykładzie przedstawiono sposób określania opłaty za jednostki żądań z użyciem wersji platformy .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}");
        }
      
  • Przydzielenie wymaganej przepływności: usługa Azure Cosmos DB potrafi automatycznie skalować magazyn i przepływność w miarę wzrostu wymagań.Allocate the required throughput: Azure Cosmos DB can automatically scale storage and throughput as your requirements grow. Potrzebną przepływność możesz oszacować, korzystając z kalkulatora jednostek żądań usługi Azure Cosmos DB.You can estimate your throughput needs by using the Azure Cosmos DB request unit calculator.

  • Tworzenie tabel w ramach konta interfejsu API Cassandra: przed rozpoczęciem migracji danych utwórz wstępnie wszystkie tabele za pomocą witryny Azure Portal lub języka 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. W przypadku migracji do konta usługi Azure Cosmos, która ma przepływność na poziomie bazy danych, pamiętaj o podaniu klucza partycji podczas tworzenia kontenerów usługi 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.

  • Zwiększanie przepływności: czas trwania migracji danych zależy od przepływności aprowizowanej dla tabel w usłudze 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. Na czas trwania migracji zwiększ przepływność.Increase the throughput for the duration of migration. Dzięki większej przepływności można uniknąć ograniczania przepustowości i przeprowadzać migrację w krótszym czasie.With the higher throughput, you can avoid rate limiting and migrate in less time. Po ukończeniu migracji zmniejsz przepływność, aby ograniczyć koszty.After you've completed the migration, decrease the throughput to save costs. Zalecane jest również posiadanie konta usługi Azure Cosmos w tym samym regionie, w którym znajduje się źródłowa baza danych.It’s also recommended to have the Azure Cosmos account in the same region as your source database.

  • Włączenie protokołu SSL: usługa Azure Cosmos DB ma ścisłe wymagania i standardy dotyczące bezpieczeństwa.Enable SSL: Azure Cosmos DB has strict security requirements and standards. Pamiętaj, aby włączyć protokół SSL w przypadku interakcji z kontem.Be sure to enable SSL when you interact with your account. W przypadku korzystania z języka CQL z protokołem SSH możesz udostępnić informacje wymagane przez protokół SSL.When you use CQL with SSH, you have an option to provide SSL information.

Opcje migracji danychOptions to migrate data

Dane z istniejących obciążeń bazy danych Cassandra można przenieść do usługi Azure Cosmos DB przy użyciu następujących opcji:You can move data from existing Cassandra workloads to Azure Cosmos DB by using the following options:

Migrowanie danych przy użyciu polecenia cqlsh COPYMigrate data using cqlsh COPY command

Polecenie COPY języka CQL służy do kopiowania danych lokalnych na konto interfejsu API Cassandra w usłudze Azure Cosmos DB.The CQL COPY command is used to copy local data to the Cassandra API account in Azure Cosmos DB. Aby skopiować dane, wykonaj następujące kroki:Use the following steps to copy data:

  1. Uzyskaj informacje o parametrach połączenia konta interfejsu API Cassandra:Get your Cassandra API account’s connection string information:

    • Zaloguj się do witryny Azure Portal i przejdź do swojego konta usługi Azure Cosmos.Sign in to the Azure portal, and navigate to your Azure Cosmos account.

    • Otwórz okienko Parametry połączenia zawierające wszystkie informacje, których potrzebujesz, aby połączyć się z kontem interfejsu API Cassandra z poziomu serwera cqlsh.Open the Connection String pane that contains all the information that you need to connect to your Cassandra API account from cqlsh.

  2. Zaloguj się do serwera cqlsh przy użyciu informacji o połączeniu z portalu.Sign in to cqlsh using the connection information from the portal.

  3. Użyj polecenia CQL COPY, aby skopiować dane lokalne na konto interfejsu API Cassandra.Use the CQL COPY command to copy local data to the Cassandra API account.

    COPY exampleks.tablename FROM filefolderx/*.csv 
    

Migrowanie danych przy użyciu platformy SparkMigrate data using Spark

Aby przeprowadzić migrację danych na konto interfejsu API Cassandra za pomocą platformy Spark, wykonaj następujące kroki:Use the following steps to migrate data to the Cassandra API account with Spark:

Migracja danych przy użyciu zadań platformy Spark jest opcją zalecaną, gdy Twoje dane znajdują się w istniejącym klastrze na maszynach wirtualnych platformy Azure lub w jakiejkolwiek innej chmurze.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. Ta opcja wymaga skonfigurowania platformy Spark jako elementu pośredniczącego na potrzeby jednorazowego lub regularnego pozyskiwania.This option requires Spark to be set up as an intermediary for one time or regular ingestion. Migrację możesz przyspieszyć, używając łączności usługi Azure ExpressRoute między środowiskiem lokalnym i platformą Azure.You can accelerate this migration by using Azure ExpressRoute connectivity between on-premises and Azure.

Oczyszczanie zasobówClean up resources

Możesz usunąć grupę zasobów, konto usługi Azure Cosmos oraz wszystkie powiązane zasoby, gdy nie będą już potrzebne.When they're no longer needed, you can delete the resource group, the Azure Cosmos account, and all the related resources. Aby to zrobić, wybierz grupę zasobów maszyny wirtualnej, wybierz pozycję Usuń, a następnie potwierdź nazwę grupy zasobów, którą chcesz usunąć.To do so, select the resource group for the virtual machine, select Delete, and then confirm the name of the resource group to delete.

Następne krokiNext steps

W tym samouczku przedstawiono sposób migrowania danych na konto interfejsu API Cassandra w usłudze Azure Cosmos DB.In this tutorial, you've learned how to migrate your data to Cassandra API account in Azure Cosmos DB. Możesz teraz przejść do następującego artykułu, aby poznać inne zagadnienia dotyczące usługi Azure Cosmos DB:You can now proceed to the following article to learn about other Azure Cosmos DB concepts: