Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’APPLIQUE À : Cassandre
Si vous êtes développeur, vous avez peut-être des charges de travail Cassandra exécutées localement ou dans le cloud que vous aimeriez faire migrer vers Azure. Vous pouvez migrer ces charges de travail vers une API pour un compte Cassandra dans Azure Cosmos DB. Ce tutoriel fournit des instructions sur les différentes options permettant de migrer des données Apache Cassandra vers le compte d’API pour Cassandra dans Azure Cosmos DB.
Ce tutoriel décrit les tâches suivantes :
- Planifier la migration
- Prérequis pour la migration
- Migrer des données à l'aide de la commande
cqlsh
COPY
- Migrer des données à l’aide de Spark
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
Prérequis pour la migration
Estimer vos besoins en débit : Avant de migrer des données vers l’API pour le compte Cassandra dans Azure Cosmos DB, estimez les besoins en débit de votre charge de travail. En général, commencez par le débit moyen requis par les opérations CRUD. Incluez ensuite le débit supplémentaire requis pour les opérations Extraire la charge de transformation ou les opérations spiky. Vous avez besoin des informations suivantes pour planifier la migration :
Taille des données existantes ou estimation de la taille des données : Définit la taille minimale de la base de données et le débit requis. Si vous estimez la taille des données pour une nouvelle application, vous pouvez supposer que les données sont réparties uniformément entre les lignes et que vous estimez la valeur en multipliant par la taille des données.
Débit nécessaire : débit approximatif des opérations de lecture (interroger/obtenir) et d'écriture (mettre à jour/supprimer/insérer). Cette valeur est nécessaire pour calculer les unités de requête nécessaires, ainsi que la taille des données à l'état stable.
Le schéma : connectez-vous à votre cluster Cassandra existant via
cqlsh
et exportez le schéma depuis Cassandra :cqlsh [IP] "-e DESC SCHEMA" > orig_schema.cql
Après avoir identifié les exigences de votre charge de travail existante, créez un compte, une base de données et des conteneurs Azure Cosmos DB conformément aux spécifications établies en matière de débit.
Déterminer le coût en unités de requête pour une opération : vous pouvez déterminer les unités de requête avec n’importe quel kit SDK pris en charge par l’API pour Cassandra. Cet exemple montre la version .NET pour obtenir les frais de RU.
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}"); }
Allouer le débit requis : Azure Cosmos DB peut procéder à la mise à l'échelle automatique du stockage et du débit au fil de l'accroissement de vos besoins. Vous pouvez estimer vos besoins en débit en utilisant le calculateur d’unités de requête d’Azure Cosmos DB.
Créez des tables dans l’API pour le compte Cassandra : Avant de commencer à migrer des données, précréez toutes vos tables à partir du portail Azure ou à partir de
cqlsh
. Si vous migrez vers un compte Azure Cosmos DB qui dispose d'un débit de niveau base de données, veillez à fournir une clé de partition au moment de la création des conteneurs.Augmenter le débit : la durée de la migration de vos données dépend de la quantité de débit que vous avez provisionnée pour les tables dans Azure Cosmos DB. Augmentez le débit pendant la migration. Si le débit est plus élevé, vous pouvez éviter la limitation de débit et procéder à une migration plus rapide. Une fois la migration terminée, réduisez le débit pour économiser des coûts. Nous vous recommandons également de disposer d'un compte Azure Cosmos DB dans la même région que votre base de données source.
Activer TLS : Azure Cosmos DB obéit à des normes et à des exigences strictes en matière de sécurité. Veillez à activer TLS lorsque vous interagissez avec votre compte. Lorsque vous utilisez CQL avec SSH, vous pouvez fournir des informations TLS.
Options pour migrer des données
Vous pouvez déplacer des données depuis des charges de travail Cassandra existantes vers Azure Cosmos DB à l'aide de la commande cqlsh
COPY
ou en utilisant Spark.
Migrer des données à l'aide de la commande cqlsh COPY
Avertissement
Utilisez la copie CQL uniquement pour migrer de petits jeux de données. Pour déplacer des jeux de données volumineux, migrez les données à l’aide de Spark.
Pour être certain que votre fichier csv contient la structure de fichiers correcte, utilisez la
COPY TO
commande pour exporter des données directement à partir de votre table Cassandra source vers un fichier csv. Vérifiez que cqlsh est connecté à la table source à l’aide des informations d’identification appropriées.COPY exampleks.tablename TO 'data.csv' WITH HEADER = TRUE;
À présent, récupérez les informations de la chaîne de connexion de votre compte d’API pour Cassandra :
Connectez-vous au portail Azure et accédez à votre compte Azure Cosmos DB.
Ouvrez le volet Chaîne de connexion. Vous y trouverez toutes les informations dont vous avez besoin pour vous connecter à votre compte d'API pour Cassandra depuis
cqlsh
.
Connectez-vous à
cqlsh
en utilisant les informations de connexion du portail Azure.Utilisez la
CQL
COPY FROM
commande pour copierdata.csv
. Ce fichier se trouve toujours dans le répertoire racine de l’utilisateur oùcqlsh
est installé.COPY exampleks.tablename FROM 'data.csv' WITH HEADER = TRUE;
Notes
L’API pour Cassandra prend en charge le protocole version 4, fourni avec Cassandra 3.11. Il peut y avoir des problèmes liés à l’utilisation de versions de protocole ultérieures avec notre API. COPY FROM avec la version de protocole ultérieure peut générer une boucle et retourner des lignes en double.
Ajoutez la version de protocole à la commande cqlsh.
cqlsh <USERNAME>.cassandra.cosmos.azure.com 10350 -u <USERNAME> -p <PASSWORD> --ssl --protocol-version=4
Ajouter des options de limitation du débit à la commande CQL Copy
La commande COPY dans cqlsh prend en charge différents paramètres pour contrôler le taux d’ingestion de documents dans Azure Cosmos DB.
La configuration par défaut de la commande COPY tente d’ingérer des données à un rythme très rapide. Il ne tient pas compte du comportement de limitation de débit de Cosmos DB. Vous devez réduire le CHUNKSIZE ou INGESTRATE en fonction du débit configuré sur la collection.
Nous vous recommandons la configuration suivante (au minimum) pour une collection à 20 000 RU si la taille du document ou de l’enregistrement est de 1 Ko.
- CHUNKSIZE = 100
- INGESTRATE = 500
- MAXATTEMPTS = 10
Exemple de commandes
Copie de données de l’API pour Cassandra vers un fichier csv local
COPY standard1 (key, "C0", "C1", "C2", "C3", "C4") TO 'backup.csv' WITH PAGESIZE=100 AND MAXREQUESTS=1 ;
Copie de données d’un fichier csv local vers l’API pour Cassandra
COPY standard2 (key, "C0", "C1", "C2", "C3", "C4") FROM 'backup.csv' WITH CHUNKSIZE=100 AND INGESTRATE=100 AND MAXATTEMPTS=10;
Important
Seule la version open source Apache Cassandra de CQLSH COPY est prise en charge. Les versions datastax Enterprise (DSE) de CQLSH peuvent rencontrer des erreurs.
Migrer des données à l’aide de Spark
Effectuez les étapes suivantes pour migrer des données vers le compte d’API pour Cassandra avec Spark :
Approvisionnez un cluster Azure Databricks ou un cluster HDInsight.
Déplacez les données vers le point de terminaison de l'API pour Cassandra de destination. Pour plus d’informations, consultez Migrer des données de Cassandra vers un compte Azure Cosmos DB pour Apache Cassandra.
La migration de données par le biais de tâches Spark est une solution recommandée si vos données se trouvent dans un cluster existant dans des machines virtuelles Azure ou dans un autre cloud. Configurez Spark comme intermédiaire pour l’ingestion ponctuelle ou régulière. Vous pouvez accélérer cette migration avec une connectivité Azure ExpressRoute entre votre environnement local et Azure.
Migration dynamique
Si vous avez besoin d’une migration sans temps d’arrêt à partir d’un cluster Apache Cassandra natif, nous vous recommandons de configurer des écritures doubles et une charge de données en bloc distincte pour migrer des données historiques. L’implémentation de ce modèle est plus simple à l’aide d’un proxy en double écriture open source pour permettre des modifications minimales du code d’application. Pour plus d’informations, consultez Migration en direct des données d'Apache Cassandra vers Azure Cosmos DB pour Apache Cassandra.
Nettoyer les ressources
Dès que vous n'en avez plus besoin, vous pouvez supprimer le groupe de ressources, le compte Azure Cosmos DB et toutes les ressources associées. Pour cela, sélectionnez le groupe de ressources de la machine virtuelle, sélectionnez Supprimer, puis confirmez le nom du groupe de ressources à supprimer.
Étape suivante
Dans ce tutoriel, vous avez appris à migrer vos données vers une API pour un compte Cassandra dans Azure Cosmos DB. Vous pouvez maintenant découvrir d'autres concepts d'Azure Cosmos DB :