Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
PLATÍ PRO:
Cassandra
Jako vývojář můžete mít existující úlohy Cassandra, které běží místně nebo v cloudu. Můžete je chtít migrovat do Azure. Takové úlohy můžete migrovat do účtu API pro Cassandra ve službě Azure Cosmos DB. Tento kurz obsahuje pokyny k různým možnostem, které jsou k dispozici pro migraci dat Apache Cassandra do účtu rozhraní API for Cassandra ve službě Azure Cosmos DB.
Tento kurz se zabývá následujícími úkony:
- Naplánujte migraci.
- Splnění požadavků pro migraci
- Migrace dat pomocí
cqlsh
COPY
příkazu - Migrace dat pomocí Sparku
Pokud nemáte předplatné Azure, vytvořte si bezplatný účet před zahájením.
Předpoklady pro migraci
Odhad požadavků na propustnost: Před migrací dat do účtu API pro Cassandra ve službě Azure Cosmos DB odhadněte potřeby propustnosti vaší úlohy. Obecně platí, že začněte s průměrnou propustností vyžadovanou operacemi vytvoření, čtení, aktualizace a odstranění (CRUD). Pak zahrňte dodatečnou propustnost potřebnou pro operace extrakce, transformace a načítání (ETL) nebo nepravidelné operace. K naplánování migrace budete potřebovat následující podrobnosti:
Velikost stávajících dat nebo odhadovanou velikost dat: Definuje minimální požadavky na velikost a propustnost databáze. Pokud odhadnete velikost dat pro novou aplikaci, můžete předpokládat, že se data rovnoměrně distribuují napříč řádky. Hodnotu můžete odhadnout vynásobením velikostí dat.
Požadovaná propustnost: Přibližná rychlost čtení (dotaz/získání) a zápisu (operace aktualizace, odstranění/vložení) Tato hodnota se vyžaduje k výpočtu požadovaných jednotek žádosti spolu s velikostí dat v stabilním stavu.
Schéma: Připojte se k existujícímu clusteru Cassandra prostřednictvím
cqlsh
a exportujte schéma z Cassandra:cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql
Po identifikaci požadavků na stávající úlohu vytvořte účet, databázi a kontejnery Azure Cosmos DB podle shromážděných požadavků na propustnost.
Určení poplatku za jednotku žádosti (RU) pro operaci: Jednotky RU můžete určit pomocí SDK podporovaných Cassandra API. Tento příklad ukazuje získání poplatků za RU pro verzi .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}"); }
Přidělení požadované propustnosti: Azure Cosmos DB dokáže automaticky škálovat úložiště a propustnost podle vašich rostoucích požadavků. Potřeby propustnosti můžete odhadnout pomocí kalkulačky RU služby Azure Cosmos DB.
Vytvořte tabulky v účtu API pro Cassandra: Než začnete migrovat data, předem vytvořte všechny tabulky z Azure portal nebo z
cqlsh
. Pokud migrujete na účet služby Azure Cosmos DB s propustností na úrovni databáze, při vytváření kontejnerů zadejte klíč oddílu.Zvýšená propustnost: Doba trvání migrace dat závisí na propustnosti, kterou pro tabulky v Azure Cosmos DB zřídíte. Zvýšení propustnosti během migrace S vyšší propustností se můžete vyhnout omezování rychlosti a migraci za kratší dobu. Po dokončení migrace snižte propustnost, abyste ušetřili náklady. Doporučujeme také mít účet služby Azure Cosmos DB ve stejné oblasti jako zdrojová databáze.
Povolení protokolu TLS (Transport Layer Security): Azure Cosmos DB má přísné požadavky na zabezpečení a standardy. Povolte protokol TLS při interakci s vaším účtem. Při použití jazyka CQL (Cassandra Query Language) se zabezpečeným prostředím můžete zadat informace o protokolu TLS.
Možnosti migrace dat
Data z existujících úloh Cassandra můžete přesunout do služby Azure Cosmos DB pomocí cqlsh
COPY
příkazu nebo pomocí Sparku.
Migrace dat pomocí příkazu cqlsh COPY
Upozorňující
K migraci malých datových sad použijte příkaz CQL COPY
. Pokud chcete přesunout velké datové sady, migrujte data pomocí Sparku.
Abyste měli jistotu, že váš soubor .csv obsahuje správnou strukturu souborů, použijte
COPY TO
příkaz k exportu dat přímo ze zdrojové tabulky Cassandra do .csv souboru. Pomocí příslušných přihlašovacích údajů se ujistěte, žecqlsh
je připojená ke zdrojové tabulce.COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;
Teď získejte informace o připojovacím řetězci vašeho rozhraní API pro účet Cassandra:
- Přihlaste se k webu Azure Portal a přejděte ke svému účtu služby Azure Cosmos DB.
-
Otevřete podokno Připojovací řetězec. Tady uvidíte všechny informace, které potřebujete pro připojení k vašemu účtu API for Cassandra z
cqlsh
.
Přihlaste se
cqlsh
pomocí informací o připojení z portálu Azure.Ke zkopírování
data.csv
použijte příkaz CQLCOPY FROM
. Tento soubor se stále nachází v kořenovém adresáři uživatele, kdecqlsh
je nainstalovaný.COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
Poznámka:
Rozhraní API pro Cassandra podporuje protokol verze 4, který se dodává s Cassandra 3.11. Pokud s naším rozhraním API používáte novější verze protokolů, můžou se zde vyskytovat problémy. S novější verzí COPY FROM
protokolu může příkaz přejít do smyčky a vrátit duplicitní řádky.
Přidat protocol-version
do cqlsh
příkazu:
cqlsh <USERNAME>.cassandra.cosmos.azure.com 10350 -u <USERNAME> -p <PASSWORD> --ssl --protocol-version=4
Přidání možností omezení propustnosti do příkazu CQL COPY
Příkaz COPY
in cqlsh
podporuje různé parametry pro řízení rychlosti příjmu dokumentů do služby Azure Cosmos DB.
Výchozí konfigurace příkazu COPY
se pokusí ingestovat data rychlým tempem. Nebere v úvahu chování při omezování rychlosti služby Azure Cosmos DB. Snižte CHUNKSIZE
nebo INGESTRATE
v závislosti na propustnosti, která je nakonfigurována v kolekci.
Pokud je velikost dokumentu nebo záznamu 1 kB, doporučujeme pro kolekci použít následující konfiguraci (minimálně 20 000 RU):
-
CHUNKSIZE
= 100 -
INGESTRATE
= 500 -
MAXATTEMPTS
= 10
Příklady příkazů
Zkopírujte data z rozhraní API pro Cassandra do místního souboru .csv:
COPY standard1 (key, "C0", "C1", "C2", "C3", "C4") TO 'backup.csv' WITH PAGESIZE=100 AND MAXREQUESTS=1 ;
Zkopírujte data z místního souboru .csv do rozhraní API pro Cassandra:
COPY standard2 (key, "C0", "C1", "C2", "C3", "C4") FROM 'backup.csv' WITH CHUNKSIZE=100 AND INGESTRATE=100 AND MAXATTEMPTS=10;
Důležité
Podporuje se pouze opensourcová CQLSH COPY
verze Apache Cassandra. U verzí CQLSH
Datastax Enterprise (DSE) můžou nastat chyby.
Migrace dat pomocí Sparku
Pokud chcete migrovat data do účtu API pro Cassandra pomocí Sparku, postupujte takto:
Zřízení clusteru Azure Databricks nebo clusteru Azure HDInsight
Přesuňte data do cílového rozhraní API pro koncový bod Cassandra. Další informace najdete v tématu Migrace dat z Cassandra do účtu Azure Cosmos DB for Apache Cassandra.
Pokud máte data, která se nacházejí v existujícím clusteru ve virtuálních počítačích Azure nebo v jiném cloudu, doporučujeme k migraci dat použít úlohy Sparku. Nastavte Spark jako zprostředkující pro jednorázový nebo pravidelný příjem dat. Tuto migraci můžete urychlit pomocí připojení Azure ExpressRoute mezi místním prostředím a Azure.
Migrace za provozu
Pokud potřebujete migraci bez výpadků z nativního clusteru Apache Cassandra, doporučujeme nakonfigurovat duální zápisy a samostatné hromadné načítání dat pro migraci historických dat. Implementace tohoto vzoru je jednodušší, když použijete open-source duální zápis proxy, který umožňuje minimální změny v kódu aplikace. Další informace najdete v tématu Migrace dat z Apache Cassandra do služby Azure Cosmos DB pro Apache Cassandra.
Vyčištění prostředků
Pokud už prostředky nepotřebujete, můžete odstranit skupinu prostředků, účet služby Azure Cosmos DB a všechny související prostředky. Uděláte to tak, že vyberete skupinu prostředků pro virtuální počítač, vyberete Odstranit a pak potvrdíte název skupiny prostředků, která se má odstranit.
Další krok
V tomto kurzu jste zjistili, jak migrovat data do účtu API for Cassandra ve službě Azure Cosmos DB. Teď se můžete seznámit s dalšími koncepty ve službě Azure Cosmos DB: