Cassandra Exemple de création, modification et troncature de tableau en CQL

⚡ Résumé intelligent

Cassandra Les opérations sur les tables comprennent la création, la modification et la suppression.pinget la troncature des familles de colonnes avec CQL. Cette page explique chaque commande, les trois formes de clé primaire qui déterminent la distribution des données et les différences entre la suppression de lignes et la suppression d'une table.

  • ???? Créer une table : Une table nécessite un espace de clés, des définitions de colonnes et une clause de clé primaire qui fixe la distribution et l'ordre de tri.
  • (I.e. Clé primaire unique : Une colonne sert de clé de partition, de sorte que chaque ligne ayant cette valeur atterrit sur le même nœud.
  • 🧩 Clé primaire composée : La première colonne crée des partitions, les colonnes suivantes regroupent et trient les lignes à l'intérieur de la partition.
  • 🧮 Clé de partition composée : Encadrer deux colonnes permet de diviser une grande cloison en plusieurs plus petites.
  • Modifier les limites : Il est possible d'ajouter ou de supprimer des colonnes, mais les colonnes de clé primaire ne peuvent jamais être modifiées.
  • 🇧🇷 Supprimer ou tronquer : La commande DROP supprime le schéma et les données ; la commande TRUNCATE vide toutes les lignes mais conserve la définition de la table.

Cassandra Créer une table Modifier Drop

La syntaxe de Cassandra Le langage de requête (CQL) ressemble à SQL la langue.

Comment créer un tableau dans Cassandra

Famille de colonnes dans Cassandra est similaire à la table SGBDR. La famille de colonnes est utilisée pour stocker des données.

La commande 'Créer une table' est utilisée pour créer une famille de colonnes dans Cassandra.

Syntaxe

CREATE TABLE KeyspaceName.TableName (
    ColumnName DataType,
    ColumnName DataType,
    ColumnName DataType,
    PRIMARY KEY (ColumnName)
) WITH PropertyName = PropertyValue;

1. Clé primaire : Il existe deux types de clé primaire.

  • Clé primaire unique : Une clé primaire unique est spécifiée par la syntaxe suivante.

Syntaxe

PRIMARY KEY (ColumnName)

Dans la clé primaire unique, il n’y a qu’une seule colonne. Cette colonne est également appelée clé de partitionnement. Les données sont partitionnées sur la base de cette colonne. Les données sont réparties sur différents nœuds en fonction de la clé de partition.

2. Clé primaire composée : La clé primaire composée est spécifiée par la syntaxe suivante.

Syntaxe

PRIMARY KEY (ColumnName1, ColumnName2, ...)

Dans la syntaxe ci-dessus, ColumnName1 est la clé de partitionnement et ColumnName2 est la clé de partitionnement. ClusterClé de partition. Les données seront partitionnées sur la base de ColumnName1 et les données seront regroupées sur la base de ColumnName2. Clustering est le processus qui trie les données dans la partition.

3. Clé de partitionnement composée : La clé de partitionnement composée est spécifiée par la syntaxe suivante.

Syntaxe

PRIMARY KEY ((ColumnName1, ColumnName2), ColumnName3)

Dans la syntaxe ci-dessus, ColumnName1 et ColumnName2 constituent la clé de partitionnement composée. Les données seront partitionnées en fonction de ces deux colonnes, puis regroupées en clusters selon la valeur de ColumnName3. Si une seule partition contient un volume de données trop important, une clé de partitionnement composée est utilisée. Cette dernière permet de créer plusieurs partitions pour les données.

  • Avec clause

La «clause With» est utilisée pour spécifier n'importe quelle propriété et sa valeur pour la table définie. Par exemple, si vous souhaitez compresser Cassandra Les données du tableau peuvent être compressées. Vous pouvez définir la propriété de compression en spécifiant la valeur de la propriété d'algorithme de compression dans la clause « With ». Cette même clause permet également de définir CLUSTERING ORDER BY pour inverser le sens de tri d'une colonne de clustering, et default_time_to_live pour que chaque ligne expire automatiquement.

Exemple

Voici l'exécution de la commande 'Create table' qui créera la table nom 'Student' dans l'espace de clés 'University'.

Cassandra Créer un tableau

CREATE TABLE University.Student (
    RollNo int,
    Name text,
    dept text,
    PRIMARY KEY (RollNo)
);

Après l'exécution réussie de la commande « Créer la table », la table « Étudiant » sera créée dans l'espace de clés « Université » avec les colonnes Numéro d'étudiant, Nom et Département. Numéro d'étudiant est la clé primaire. Numéro d'étudiant est également une clé de partition ; chaque étudiant occupe donc une partition distincte sur une seule ligne.

Cassandra Alter table

La commande « Modifier la table » est utilisée pour supprimer une colonne, ajouter une nouvelle colonne, modifier le nom de la colonne, modifier le type de colonne et modifier la propriété de la table.

Syntaxe

Voici la syntaxe de la commande « Alter Table ».

ALTER TABLE KeyspaceName.TableName
    ADD ColumnName ColumnDataType;

ALTER TABLE KeyspaceName.TableName
    DROP ColumnName;

ALTER TABLE KeyspaceName.TableName
    RENAME ColumnName TO NewColumnName;

ALTER TABLE KeyspaceName.TableName
    WITH PropertyName = PropertyValue;

Chaque formulaire fait l'objet d'un relevé distinct. Deux restrictions s'appliquent actuellement. Cassandra mises à jour : le type de données d’une colonne existante ne peut plus être modifié, et RENAME ne fonctionne que sur une colonne de clustering de la clé primaire.

Exemple

Voici l'instantané de la commande 'Alter Table' qui ajoutera une nouvelle colonne dans la table Student.

Cassandra Alter table

ALTER TABLE University.Student ADD Semester int;

Après l'exécution réussie de la commande 'Alter Table', une nouvelle colonne 'Semester' avec le type de données 'int' sera ajoutée à la table Student.

Voici la capture d'écran qui montre la table Student mise à jour.

Cassandra Alter table

Cassandra Drop table

La commande « Drop table » supprime la table spécifiée, y compris toutes ses données, de l'espace de clés. Avant la suppressionping la table, Cassandra prend un instantané des données et non du schéma comme sauvegarde.

Syntaxe

DROP TABLE IF EXISTS KeyspaceName.TableName;

Exemple

Voici l'instantané de la commande exécutée 'Drop Table' qui supprimera la table Student de l'espace de clés 'University'.

Cassandra Drop table

DROP TABLE University.Student;

Après l'exécution réussie de la commande « Drop Table », la table Student sera supprimée de l'espace de clés University.

Voici l'instantané qui montre l'erreur renvoyée par le Cassandra lorsque j'ai essayé d'accéder à la table Student qui n'existe pas.

Cassandra Drop table

Cassandra Tronquer la table

La commande 'Truncate table' supprime toutes les données de la table spécifiée. Avant de tronquer les données, Cassandra prend l'instantané des données comme sauvegarde.

Syntaxe

TRUNCATE KeyspaceName.TableName;

Exemple

Il y a trois enregistrements dans la table Étudiant. Ce sont les enregistrements du tableau.

Cassandra Tronquer la table

Voici l'instantané de la commande exécutée 'Truncate table' qui supprimera toutes les données de la table Student.

Cassandra Tronquer la table

Après l'exécution réussie de la commande 'Truncate Table', toutes les données seront supprimées de la table Student.

Voici un instantané de l'état de la base de données où il n'y a aucun enregistrement dans la table Student.

Cassandra Tronquer la table

La commande TRUNCATE exige que tous les nœuds soient accessibles, car elle est exécutée simultanément sur l'ensemble du cluster. Si un nœud est hors service, la commande échoue, ce qui constitue une mesure de sécurité délibérée afin d'éviter la perte de données partielles.

Supprimer vs Tronquer vs Supprimer dans Cassandra

Trois commandes permettent de supprimer des données, et choisir la mauvaise peut soit détruire un schéma, soit engendrer un problème de performance.

Command Ce qu'il supprime Schéma conservé Prix
TABLE DROP Toutes les lignes et la définition du tableau Non Peu coûteux. Les SSTables sont créées par instantané puis supprimées.
TRONQUER Toutes les lignes Oui Peu coûteux, mais nécessite que tous les nœuds soient opérationnels. Aucune pierre tombale n'est créée.
EFFACER Lignes ou colonnes sélectionnées Oui Coûteux à grande échelle. Chaque opération de retrait laisse une marque indiquant qu'il faut attendre le compactage avant de procéder à l'enlèvement.

En pratique, il est préférable d'utiliser TRUNCATE plutôt qu'une suppression en bloc (DELETE) pour effacer une table entière, car des milliers de marqueurs de suppression ralentiront chaque lecture ultérieure de cette partition. La suppression au niveau des lignes est traitée dans la section suivante : Insérer, mettre à jour et supprimer via CQL tutoriel.

FAQ

Non. La clé primaire détermine l'emplacement physique des données ; elle est donc fixée lors de la création de la table. La modifier implique de créer une nouvelle table avec la clé souhaitée et d'y transférer les lignes.

Ajoutez WITH CLUSTERING ORDER BY (ColumnName DESC) lors de la création du schéma. Le paramétrer dans le schéma est bien moins coûteux que de trier à chaque requête de lecture.

Non. La colonne est immédiatement masquée aux requêtes, mais ses données restent dans les SSTables existantes jusqu'à ce que la compaction les réécrive. L'espace est récupéré progressivement.

La liste des colonnes se traduit correctement, mais l'IA conserve souvent un identifiant de substitution comme clé de partition, ce qui crée des partitions à une seule ligne. Reformulez le modèle de requête afin que la clé soit utilisée pour les lectures.

Oui, pour les problèmes liés aux modèles, comme l'absence de colonnes de clustering, des partitions non bornées ou des colonnes de collection susceptibles de dépasser les limites. Vérifiez la cardinalité réelle avant d'agir.

Résumez cet article avec :