Sdílet prostřednictvím


Kurz: Migrace dat do účtu API pro Cassandra

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í cqlshCOPY 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 cqlsha 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í cqlshCOPY 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.

  1. 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, že cqlsh je připojená ke zdrojové tabulce.

    COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;   
    
  2. Teď získejte informace o připojovacím řetězci vašeho rozhraní API pro účet Cassandra:

    1. Přihlaste se k webu Azure Portal a přejděte ke svému účtu služby Azure Cosmos DB.
    2. 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.
  3. Přihlaste se cqlsh pomocí informací o připojení z portálu Azure.

  4. Ke zkopírování data.csvpoužijte příkaz CQL COPY FROM . Tento soubor se stále nachází v kořenovém adresáři uživatele, kde cqlsh 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:

  1. Zřízení clusteru Azure Databricks nebo clusteru Azure HDInsight

  2. 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: