Apache Cassandra Batch

Apache Cassandra Batch

Le traitement par lots est une caractéristique très importante lorsque vous travaillez avec des bases de données. Non seulement ils fournissent aux développeurs un moyen d'exécuter une série d'instructions d'un seul script, mais ils fournissent également une atomicité sur le cluster cible.

Dans cet article, nous couvrirons les bases du travail avec le traitement par lots à Apache Cassandra. Cela vous permet de combiner une série de requêtes dans un seul contexte d'exécution.

Plongeons-nous dans.

Syntaxe de traitement par lots de Cassandra

Ce qui suit montre la syntaxe de l'instruction par lots à Cassandra:

Commencer [(Unglogged | compteur)] lot
[Utilisation d'horodatre [epoch_microsecondes]]]
dml_statement [en utilisant TimeStamp [epoch_microsecondes]];
[dml_statement [Utilisation d'horodatre [epoch_microsecondes]] [;…]]
Appliquer un lot;

Vous pouvez utiliser un insert, mettre à jour ou supprimer des instructions dans une clause de lot.

L'énoncé débordant définit si le lot est enregistré ou non. Un lot enregistré garantit une atomicité maximale en s'assurant que toutes les déclarations du lot sont exécutées avec succès. Si l'une des instructions d'un lot enregistré échoue, l'ensemble du lot ne parviendra pas à exécuter.

Les instructions d'horodatage d'utilisation sont utilisées pour définir l'heure d'écriture des transactions effectuées par les instructions du lot. Vous pouvez permettre au cluster d'attribuer un seul horodatage sur toutes les transactions effectuées par le lot ou vous pouvez spécifier les instructions sur lesquelles vous souhaitez appliquer l'horodatage.

Un exemple est comme indiqué:

Commencez le lot à l'aide d'horodatage [epoch_microsecondes]
instruction_1;

instruction_N;
Appliquer un lot;

Dans l'exemple précédent, Cassandra crée un horodatage pour toutes les transactions effectuées par les instructions spécifiées du lot.

Un autre exemple est comme indiqué:

Commencer le lot
instruction_1;
Statement_2 Utilisation d'horodatage [epoch_microsecondes];
instruction_N;
Appliquer un lot;

Dans ce cas, Cassandra applique uniquement les horodatages pour les transactions effectuées par l'instruction_2.

Exemple:

L'exemple suivant illustre comment utiliser une instruction par lots à l'aide d'une instruction INSERT DML:

Cassandra @ CQLSH: Test> Créer des utilisateurs de table (
… Id int,
… Texte du nom d'utilisateur,
… Clé primaire (ID));

Une fois la configuration de la table, nous pouvons exécuter un insert par lots comme suit:

Cassandra @ CQLSH: Test> Démarrer le lot à l'aide de Timestamp 1664050149 INSERT IN USERS (ID, nom d'utilisateur) Valeurs (1, 'Username1'); Insérer dans les utilisateurs (id, nom d'utilisateur) Valeurs (2, «username2»); appliquer un lot;

La requête doit effectuer un insert par lots dans le tableau spécifié. Puisque nous définissons l'horodatage sur toutes les instructions, la requête devrait garantir que tous les enregistrements partagent un horodatage similaire.

Conclusion

Dans cet article, nous avons couvert les bases du travail avec le mode batch dans Apache Cassandra. Il est bon de garder à l'esprit que c'est un tutoriel de base. Il y a beaucoup plus à considérer lorsque vous travaillez avec un traitement par lots tels que des partitions simples et multiples, des espaces de clés cibles, des implications de performances, des déclarations asynchrones et plus. Nous vous recommandons de consulter la documentation pour une information détaillée.