Apache Cassandra est l'un des leaders des bases de données Nosql à large colonne. De plus, il s'agit d'une solution libre et open source pour les données. En conséquence, Cassandra est un choix populaire dans les environnements qui doivent gérer des données à l'échelle étendue avec une latence minimale et des fonctionnalités à haute disponibilité.
Cassandra fournit la langue de requête Cassandra avec une puissante langue de requête pour interagir avec Cassandra Keyspaces. CQL est étroitement similaire à SQL et fournit des commandes et une syntaxe similaires pour des opérations similaires. Cela rend Cassandra facilement accessible par les développeurs des bases de données relationnelles.
Dans ce tutoriel, nous apprendrons à utiliser la commande Select dans Cassandra. La commande SELECT nous permet de récupérer les enregistrements à partir d'une table Cassandra.
Plongeons-nous dans.
Syntaxe de commande
La commande suit une syntaxe relativement simple. La syntaxe de commande est comme indiqué dans le code d'extrait suivant:
Sélectionner * | select_expression | Partition distincte
De [keyspace_name.] nom de la table
[Où partition_value
[Et clustering_filters
[Et static_filters]]]
[Ordre par PK_Column_Name ASC | DESC]
[Limite n]
[Autoriser le filtrage]
La commande renvoie ensuite les lignes spécifiées de la table cible:
Remarque: Étant donné que Cassandra est conçue pour gérer des données à grande échelle, il n'est pas recommandé de récupérer toutes les lignes d'une table comme vous le feriez dans une base de données relationnelle.
Échantillons de données
Avant d'apprendre à sélectionner les données dans un tableau à l'aide de l'instruction SELECT, configurons un exemple de données pour l'illustration.
Commencez par créer un exemple d'espace de clé:
Créer Keyspace LinuxHint avec réplication = 'class': 'Simplestrategy', 'réplication_factor': 3,;
Communiquez l'espace de touche actuel à l'aide de la commande suivante:
Utilisez LinuxHint;
Créez un exemple de tableau à l'aide de la commande suivante:
CQLSH: LinuxHint> Créer des utilisateurs de table (ID INT, Texte du nom d'utilisateur, texte de messagerie, actif INT, clé primaire (ID));
Ajoutez un exemple de données comme indiqué:
CQLSH: LinuxHint> Insérer dans les utilisateurs (ID, nom d'utilisateur, e-mail, actif) VALEURS (0, 'USER1', 'USER1 @ Mail.à ', 1);
CQLSH: LinuxHint> Insérer dans les utilisateurs (ID, nom d'utilisateur, e-mail, actif) VALEURS (1, 'User2', 'user2 @ mail.à ', 1);
CQLSH: LinuxHint> Insérer dans les utilisateurs (ID, nom d'utilisateur, e-mail, actif) VALEURS (2, 'User3', 'user3 @ mail.à ', 0);
CQLSH: LinuxHint> Insérer dans les utilisateurs (id, nom d'utilisateur, e-mail, actif) VALEURS (3, 'User4', 'user4 @ mail.à ', 0);
CQLSH: LinuxHint> Insérer dans les utilisateurs (ID, nom d'utilisateur, e-mail, actif) VALEURS (4, 'User5', 'user5 @ mail.à ', 1);
Exemples
La section suivante fournit les exemples de réalisation des instructions de sélection communes dans un cluster Cassandra.
Exemple 1: sélectionnez tous les enregistrements
Dans Cassandra, nous pouvons sélectionner tous les enregistrements d'un tableau à l'aide de la requête comme indiqué:
CQLSH: LinuxHint> Sélectionner * chez les utilisateurs;
Nous utilisons l'instruction SELECT dans cette requête pour sélectionner toutes les colonnes de table utilisateur.
La requête précédente doit renvoyer la sortie comme indiqué:
ID | actif | Courriel | nom d'utilisateur
----+--------+---------------+----------
1 | 1 | user2 @ mail.à | user2
0 | 1 | user1 @ mail.à | User1
2 | 0 | user3 @ mail.à | User3
4 | 1 | user5 @ mail.à | user5
3 | 0 | user4 @ mail.à | User4
NOTE: Comme mentionné, cela n'est pas recommandé pour un grand ensemble de données.
Exemple 2: sélectionnez des colonnes spécifiques
Nous pouvons sélectionner des colonnes spécifiques dans une table en spécifiant les colonnes comme des valeurs séparées par les virgules.
Par exemple, pour sélectionner les colonnes ID, nom d'utilisateur et e-mail, nous pouvons exécuter la commande suivante:
CQLSH: LinuxHint> Sélectionnez ID, e-mail, nom d'utilisateur des utilisateurs;
Dans ce cas, la commande doit renvoyer une sortie comme suit:
ID | Courriel | nom d'utilisateur
----+---------------+----------
1 | user2 @ mail.à | user2
0 | user1 @ mail.à | User1
2 | user3 @ mail.à | User3
4 | user5 @ mail.à | user5
3 | user4 @ mail.à | User4
(5 rangées)
Exemple 3: Utilisation d'alias de colonnes
Pour rendre la sortie plus lisible, nous pouvons utiliser les alias de colonne qui donnent des noms personnalisés au résultat de sortie.
Par exemple:
CQLSH: LinuxHint> Sélectionnez l'ID comme user_index, e-mail comme email_address, nom d'utilisateur en tant qu'identifiant des utilisateurs;
Le mot-clé AS dans la requête vous permet de renommer la colonne à un nom d'alias sans apporter des modifications permanentes à la table.
Par exemple, la requête précédente renvoie le résultat comme:
user_index | Email_Address | identifiant
------------+---------------+------------
1 | user2 @ mail.à | user2
0 | user1 @ mail.à | User1
2 | user3 @ mail.à | User3
4 | user5 @ mail.à | user5
3 | user4 @ mail.à | User4
(5 rangées)
Notez que les colonnes ID, e-mail et nom d'utilisateur sont renommées respectivement avec user_index, e-mail_address et identifiant.
Exemple 4: limiter le nombre de lignes
En utilisant l'option limite, nous pouvons également limiter le nombre d'enregistrements renvoyés par la requête sélectionnée. La clause limite prend un entier représentant le nombre de lignes à récupérer.
Par exemple, pour récupérer les trois premières lignes, nous pouvons exécuter la commande suivante:
CQLSH: LinuxHint> SELECT * FROM Users Limit 3;
La sortie résultante est la suivante:
ID | actif | Courriel | nom d'utilisateur
----+--------+---------------+----------
1 | 1 | user2 @ mail.à | user2
0 | 1 | user1 @ mail.à | User1
2 | 0 | user3 @ mail.à | User3
(3 rangées)
Exemple 5: filtrage des données
Nous pouvons également récupérer les données qui correspondent à une condition spécifique en utilisant la clause où. Cela nous permet de spécifier une condition qui renvoie True / False et renvoie les valeurs correspondantes.
Par exemple, pour récupérer toutes les lignes où la valeur de la colonne active est égale à 1, nous pouvons effectuer ce qui suit:
CQLSH: LinuxHint> Sélectionner * dans les utilisateurs où actif = 1 Autoriser le filtrage;
La requête précédente ne doit renvoyer que les lignes où la colonne active = 1.
ID | actif | Courriel | nom d'utilisateur
----+--------+---------------+----------
1 | 1 | user2 @ mail.à | user2
0 | 1 | user1 @ mail.à | User1
4 | 1 | user5 @ mail.à | user5
(3 rangées)
NOTE: La commande de filtrage Autoriser permet à Cassandra d'utiliser les fonctionnalités de filtrage de données.
RECOMMANDATION: Utilisez uniquement le filtrage d'autorisation à des fins de développement uniquement.
Conclusion
Dans cet article, vous avez appris les principes fondamentaux de la sélection des données d'un tableau Cassandra à l'aide de l'instruction CQL Select.
Merci d'avoir lu!