Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY:
Kasandra
Jako deweloper możesz mieć istniejące obciążenia cassandra, które działają lokalnie lub w chmurze. Możesz chcieć przeprowadzić migrację ich na platformę Azure. Takie obciążenia można migrować do konta Cassandra za pomocą interfejsu API w Azure Cosmos DB. Ten samouczek zawiera instrukcje dotyczące różnych opcji, które są dostępne do migrowania danych apache Cassandra do interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB.
Ten samouczek obejmuje następujące zadania:
- Planowanie migracji.
- Spełnianie wymagań wstępnych dotyczących migracji.
- Migrowanie danych przy użyciu
cqlshCOPYpolecenia . - Migrowanie danych przy użyciu platformy Spark.
Jeśli nie masz subskrypcji Azure, przed rozpoczęciem utwórz darmowe konto.
Wymagania wstępne dotyczące migracji
Szacowanie potrzeb w zakresie przepływności: Przed migracją danych do interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB należy oszacować wymagania dotyczące przepływności obciążenia. Ogólnie rzecz biorąc, zacznij od średniej przepływności wymaganej przez operacje tworzenia, odczytu, aktualizacji i usuwania (CRUD). Następnie uwzględnij dodatkową przepustowość wymaganą do operacji wyodrębniania, przekształcania i ładowania (ETL) lub operacji charakteryzujących się dużą zmiennością. Do zaplanowania migracji potrzebne są następujące szczegóły:
Istniejący rozmiar danych lub szacowany rozmiar danych. Definiuje minimalne wymagania dotyczące rozmiaru bazy danych i przepływności. Jeśli szacujesz rozmiar danych dla nowej aplikacji, możesz założyć, że dane są równomiernie rozłożone w wierszach. Wartość można oszacować, mnożąc je przy użyciu rozmiaru danych.
Wymagana przepływność: przybliżona szybkość przepływności operacji odczytu (zapytanie/pobieranie) i zapis (aktualizacja/usuwanie/wstawianie). Ta wartość jest wymagana do obliczenia wymaganych jednostek żądania wraz z rozmiarem danych w stanie stałym.
Schemat: Połącz się z istniejącym klastrem Cassandra za pomocą
cqlshmetody i wyeksportuj schemat z bazy danych Cassandra:cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cqlPo zidentyfikowaniu wymagań dotyczących istniejącego obciążenia utwórz konto, bazę danych i kontenery usługi Azure Cosmos DB zgodnie z zebranymi wymaganiami dotyczącymi przepływności.
Określ opłatę za jednostkę żądania (RU) za operację: Jednostki RU można określić przy użyciu dowolnego zestawu SDK obsługiwanego przez interfejs API dla bazy danych Cassandra. W tym przykładzie przedstawiono sposób określania opłaty za jednostki żądań z użyciem wersji platformy .NET.
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ń. Możesz oszacować swoje potrzeby dotyczące przepływności, używając kalkulatora RU dla usługi Azure Cosmos DB.
Tworzenie tabel w interfejsie API dla konta Cassandra: Przed rozpoczęciem migracji danych utwórz wstępnie wszystkie tabele z portalu Azure lub z
cqlsh. Jeśli przeprowadzasz migrację do konta usługi Azure Cosmos DB z przepływnością na poziomie bazy danych, podczas tworzenia kontenerów podaj klucz partycji.Zwiększenie przepływności. Czas trwania migracji danych zależy od przepływności aprowizowanej dla tabel w usłudze Azure Cosmos DB. Zwiększ przepływność podczas migracji. Dzięki wyższej przepływności można uniknąć ograniczania szybkości i migrowania w krótszym czasie. Po zakończeniu migracji zmniejsz przepływność, aby zaoszczędzić koszty. Zalecamy również posiadanie konta usługi Azure Cosmos DB w tym samym regionie co źródłowa baza danych.
Włącz protokół Transport Layer Security (TLS): Usługa Azure Cosmos DB ma ścisłe wymagania i standardy zabezpieczeń. Włącz protokół TLS podczas interakcji z kontem. Jeśli używasz języka zapytań Cassandra (CQL) z protokołem Secure Shell, możesz podać informacje o protokole TLS.
Opcje migracji danych
Dane można przenosić z istniejących obciążeń Cassandra do usługi Azure Cosmos DB przy użyciu cqlshCOPY polecenia lub platformy Spark.
Migrowanie danych przy użyciu polecenia cqlsh COPY
Ostrzeżenie
Użyj tylko polecenia CQL COPY , aby przeprowadzić migrację małych zestawów danych. Aby przenieść duże zestawy danych, przeprowadź migrację danych przy użyciu platformy Spark.
Aby mieć pewność, że plik .csv zawiera poprawną strukturę plików, użyj
COPY TOpolecenia , aby wyeksportować dane bezpośrednio ze źródłowej tabeli Cassandra do pliku .csv. Upewnij się, żecqlshjest połączony z tabelą źródłową przy użyciu odpowiednich poświadczeń.COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;Teraz uzyskaj informacje o parametrach połączenia konta Cassandra interfejsu API:
- Zaloguj się do witryny Azure Portal i przejdź do konta usługi Azure Cosmos DB.
- Otwórz okienko Parametry połączenia. W tym miejscu zobaczysz wszystkie informacje potrzebne do nawiązania połączenia z interfejsem API dla konta Cassandra z witryny
cqlsh.
Zaloguj się do
cqlshkorzystając z informacji o połączeniu z portalu Azure.Użyj polecenia CQL
COPY FROM, aby skopiowaćdata.csvplik . Ten plik nadal znajduje się w katalogu głównym użytkownika, w którymcqlshjest zainstalowany.COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
Uwaga
Interfejs API dla bazy danych Cassandra obsługuje protokół w wersji 4, który jest dostarczany z rozwiązaniem Cassandra 3.11. W przypadku używania nowszych wersji protokołu z naszym interfejsem API mogą wystąpić problemy. W przypadku nowszej wersji COPY FROM protokołu polecenie może przejść do pętli i zwrócić zduplikowane wiersze.
Dodaj protocol-version do cqlsh polecenia :
cqlsh <USERNAME>.cassandra.cosmos.azure.com 10350 -u <USERNAME> -p <PASSWORD> --ssl --protocol-version=4
Dodawanie opcji ograniczania przepływności do polecenia CQL COPY
Polecenie COPY w programie cqlsh obsługuje różne parametry do kontrolowania szybkości pozyskiwania dokumentów w usłudze Azure Cosmos DB.
Domyślna konfiguracja polecenia COPY próbuje przetwarzać dane w szybkim tempie. Nie uwzględnia ona zachowania ograniczającego szybkość usługi Azure Cosmos DB. Zmniejsz CHUNKSIZE lub INGESTRATE w zależności od przepływności skonfigurowanej w kolekcji.
Zalecamy następującą konfigurację (co najmniej) dla kolekcji na 20 000 jednostek RU, jeśli rozmiar dokumentu lub rekordu wynosi 1 KB:
-
CHUNKSIZE= 100 -
INGESTRATE= 500 -
MAXATTEMPTS= 10
Przykładowe polecenia
Skopiuj dane z interfejsu API dla bazy danych Cassandra do lokalnego pliku .csv:
COPY standard1 (key, "C0", "C1", "C2", "C3", "C4") TO 'backup.csv' WITH PAGESIZE=100 AND MAXREQUESTS=1 ;Skopiuj dane z lokalnego pliku .csv do interfejsu API dla systemu Cassandra:
COPY standard2 (key, "C0", "C1", "C2", "C3", "C4") FROM 'backup.csv' WITH CHUNKSIZE=100 AND INGESTRATE=100 AND MAXATTEMPTS=10;
Ważne
Obsługiwana jest tylko wersja CQLSH COPY oprogramowania Apache Cassandra typu open source. Wersje CQLSH Datastax Enterprise (DSE) mogą napotkać błędy.
Migrowanie danych przy użyciu platformy Spark
Aby przeprowadzić migrację danych do interfejsu API dla konta cassandra za pomocą platformy Spark, wykonaj następujące kroki:
Aprowizuj klaster usługi Azure Databricks lub klaster usługi Azure HDInsight.
Przenoszenie danych do docelowego interfejsu API dla punktu końcowego Cassandra. Aby uzyskać więcej informacji, zobacz Migrate data from Cassandra to an Azure Cosmos DB for Apache Cassandra account (Migrowanie danych z bazy danych Cassandra do konta usługi Azure Cosmos DB dla bazy danych Apache Cassandra).
Jeśli masz dane znajdujące się w istniejącym klastrze na maszynach wirtualnych platformy Azure lub w dowolnej innej chmurze, zalecamy migrowanie danych przy użyciu zadań platformy Spark. Skonfiguruj platformę Spark jako pośrednika w jednorazowym lub regularnym pozyskiwaniu. Migrację można przyspieszyć przy użyciu łączności usługi Azure ExpressRoute między środowiskiem lokalnym a platformą Azure.
Migracja na żywo
Jeśli potrzebujesz migracji bez przestojów z natywnego klastra Apache Cassandra, zalecamy skonfigurowanie podwójnych zapisów i oddzielnego obciążenia danych zbiorczych w celu migracji danych historycznych. Implementacja tego wzorca jest prostsza w przypadku używania serwera proxy z podwójnym zapisem typu open source w celu umożliwienia minimalnych zmian kodu aplikacji. Aby uzyskać więcej informacji, zobacz Live migrate data from Apache Cassandra to the Azure Cosmos DB for Apache Cassandra (Migrowanie danych na żywo z bazy danych Apache Cassandra do usługi Azure Cosmos DB dla systemu Apache Cassandra).
Czyszczenie zasobów
Gdy zasoby nie są już potrzebne, możesz usunąć grupę zasobów, konto usługi Azure Cosmos DB i wszystkie powiązane zasoby. Aby to zrobić, wybierz grupę zasobów maszyny wirtualnej, wybierz pozycję Usuń, a następnie potwierdź nazwę grupy zasobów, którą chcesz usunąć.
Następny krok
W tym samouczku przedstawiono sposób migrowania danych do interfejsu API dla konta Cassandra w usłudze Azure Cosmos DB. Teraz możesz dowiedzieć się więcej o innych pojęciach w usłudze Azure Cosmos DB: