Zelfstudie: Uw gegevens migreren naar een Cassandra-API account
VAN TOEPASSING OP:
Cassandra-API
Als ontwikkelaar hebt u mogelijk bestaande Cassandra-workloads die on-premises worden uitgevoerd of in de cloud, die u mogelijk wilt migreren naar Azure. U kunt dergelijke workloads migreren naar een Cassandra-API-account in Azure Cosmos DB. In deze zelfstudie vindt u instructies over verschillende opties voor het migreren van Apache Cassandra-gegevens naar het Cassandra-API-account in Azure Cosmos DB.
Deze zelfstudie bestaat uit de volgende taken:
- Plan voor migratie
- Vereisten voor migratie
- Gegevens migreren met behulp van de
cqlshCOPYopdracht - Gegevens migreren met Spark
Als u nog geen abonnement op Azure hebt, maakt u een gratis account aan voordat u begint.
Vereisten voor migratie
Maak een schatting van de doorvoervereisten: Voordat u gegevens migreert naar het Cassandra-API-account in Azure Cosmos DB, moet u een schatting maken van de doorvoervereisten voor uw workload. Over het algemeen begint u met de gemiddelde doorvoer die is vereist voor de CRUD-bewerkingen en moet u vervolgens de extra doorvoer opnemen die is vereist voor de bewerkingen Transformatiebelasting extraheren of pieken. U hebt de volgende gegevens nodig om de migratie te plannen:
Bestaande gegevensgrootte of een schatting van de gegevensgrootte: de minimale databasegrootte en de vereiste voor de doorvoer. Als u de gegevensgrootte voor een nieuwe toepassing inschatten, kunt u ervan uitgaan dat de gegevens gelijkmatig zijn verdeeld over de rijen en de waarde schatten door te vermenigvuldigen met de gegevensgrootte.
Vereiste doorvoer: Geschatte doorvoersnelheid van lees- (query/get) en schrijfbewerkingen (bijwerken/verwijderen/invoegen). Deze waarde is vereist voor het berekenen van de vereiste aanvraageenheden, samen met de gegevensgrootte van de stabiele status.
Het schema: Verbinding maken naar uw bestaande Cassandra-cluster via
cqlshen exporteert het schema vanuit Cassandra:cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cqlNadat u de vereisten van uw bestaande workload hebt gevonden, maakt u een Azure Cosmos DB-account, -database en -containers op basis van de verzamelde doorvoervereisten.
De RU-kosten voor een bewerking bepalen: u kunt de RU's bepalen met behulp van een van de SDK's die worden ondersteund door de Cassandra-API. In dit voorbeeld ziet u de .NET-versie van het ophalen van RU-kosten.
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}"); }
Toewijzen van de vereiste doorvoer: Azure Cosmos DB kan opslag en doorvoer automatisch schalen als uw vereisten veranderen. U kunt uw doorvoer schatten met behulp van de calculator voor aanvraageenheden en gegevensopslag.
Tabellen maken in het Cassandra-API account: Voordat u begint met het migreren van gegevens, maakt u vooraf alle tabellen van de Azure Portal of van
cqlsh. Als u migreert naar een Azure Cosmos DB-account met doorvoer op databaseniveau, moet u een partitiesleutel verstrekken wanneer u de containers maakt.Doorvoer verhogen: de duur van de gegevensmigratie is afhankelijk van de hoeveelheid doorvoer die u voor de tabellen hebt ingericht in Azure Cosmos DB. Verhoog de doorvoer voor de duur van de migratie. Met een hogere doorvoer voorkomt u frequentielimieten en kost migreren minder tijd. Nadat u de migratie hebt voltooid, verlaagt u de doorvoer om kosten te besparen. We raden u ook aan om het Azure Cosmos DB in dezelfde regio als uw brondatabase.
TLS inschakelen: Voor Azure Cosmos DB gelden strenge beveiligingsvereisten en -normen. Schakel TLS in wanneer u uw account gebruikt. Wanneer u CQL gebruikt met SSH, hebt u een optie om TLS-gegevens op te geven.
Mogelijkheden voor migreren van gegevens
U kunt gegevens verplaatsen van bestaande Cassandra-workloads naar Azure Cosmos DB met behulp van de cqlsh COPY opdracht of met behulp van Spark.
Gegevens migreren met behulp van de cqlsh-opdracht COPY
Gebruik de CQL COPY-opdracht om lokale gegevens te kopiëren naar het Cassandra-API-account in Azure Cosmos DB.
Als u zeker wilt zijn dat uw CSV-bestand de juiste bestandsstructuur bevat, gebruikt u de opdracht om gegevens rechtstreeks vanuit de Cassandra-brontabel te exporteren naar een CSV-bestand (zorg ervoor dat cqlsh met de juiste referenties is verbonden met de
COPY TObrontabel):COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;Haal nu de Cassandra-API van uw account connection string op:
Meld u aan bij Azure Portalen ga naar uw Azure Cosmos DB account.
Open het deelvenster Verbindingsreeks. Hier ziet u alle informatie die u nodig hebt om verbinding te maken met uw Cassandra-API-account vanuit
cqlsh.
Meld u aan
cqlshbij met behulp van de verbindingsgegevens van de portal.Gebruik de
CQLCOPY FROMopdracht om te kopiërendata.csv(nog steeds in de hoofdmap van de gebruiker waarincqlshis geïnstalleerd):COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
Belangrijk
Alleen de opensource Apache Cassandra-versie van CQLSH COPY wordt ondersteund. Datastax Enterprise-versies (DSE) van CQLSH kunnen fouten ondervinden.
Gegevens migreren met Spark
Gebruik de volgende stappen om gegevens met Spark naar het Cassandra API-account te migreren:
Een cluster Azure Databricks of een cluster Azure HDInsight inrichten.
Verplaats gegevens naar het Cassandra-API eindpunt. Raadpleeg deze handleiding voor migratie met Azure Databricks.
Het migreren van gegevens met behulp van Spark-taken wordt aanbevolen als er gegevens aanwezig zijn in een bestaand cluster op virtuele Azure-machines of in een andere cloud. Hiervoor moet u Spark instellen als intermediair voor een een-time of regelmatige opname. U kunt deze migratie versnellen met behulp Azure ExpressRoute connectiviteit tussen uw on-premises omgeving en Azure.
Livemigratie
Als een migratie zonder downtime vanuit een systeemeigen Apache Cassandra-cluster is vereist, raden we u aan om dubbele schrijf schrijfgegevens en een afzonderlijke bulklading van gegevens te configureren om historische gegevens te migreren. We hebben het implementeren van dit patroon eenvoudiger gemaakt door een opensource-proxy voor dual-write te bieden, zodat er minimale wijzigingen in de toepassingscode mogelijk zijn. Bekijk ons artikel over livemigratie met behulp van een dual-write proxy en Apache Spark meer informatie over het implementeren van dit patroon.
Resources opschonen
Wanneer u ze niet meer nodig hebt, kunt u de resourcegroep, het Azure Cosmos DB account en alle gerelateerde resources verwijderen. Daarvoor selecteert u de resourcegroep voor de virtuele machine en selecteert u Verwijderen. Vervolgens bevestigt u de naam van de resourcegroep die u wilt verwijderen.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u uw gegevens migreert naar een Cassandra-API-account in Azure Cosmos DB. U kunt nu meer te weten komen over andere concepten in Azure Cosmos DB: