Interroger Cassandra avec CQL

CQL, le langage de Cassandra : ce que la clé primaire autorise, l'ordre des lignes, ALLOW FILTERING, les écritures qui écrasent et la durée de vie.

  • 23 cartes
  • 4 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation

Quelques cartes du deck

  • CQL : de quoi s'agit-il ?

    Voir la réponse

    Langage de requête de Cassandra, dont la syntaxe ressemble à celle de SQL mais qui ne connaît ni jointure ni sous-requête.

    Une requête ne lit qu'une seule table : c'est pourquoi on crée une table par requête à servir.

  • Table mesures avec PRIMARY KEY ((capteur), instant). Le capteur c7 a des lignes aux instants 2025-02-10, 2025-03-01 et 2025-03-05. Quelle est la première ligne rendue par SELECT * FROM mesures WHERE capteur = 'c7' AND instant >= '2025-03-01' LIMIT 2 ?

    • Celle du 2025-03-01
    • Celle du 2025-03-05
    • Celle du 2025-02-10
    • Aucune, la requête est refusée
    Voir la réponse

    Celle du 2025-03-01

    Sans ORDER BY, les lignes d'une partition sortent dans l'ordre de la colonne de regroupement, croissant faute de CLUSTERING ORDER BY à la création. L'intervalle retire le 10 février, et LIMIT 2 garde les deux restantes.

  • Dans PRIMARY KEY ((capteur, jour), instant), la clé de partition est formée de … et la colonne de regroupement est ….

    Voir la réponse

    Dans PRIMARY KEY ((capteur, jour), instant), la clé de partition est formée de capteur et jour et la colonne de regroupement est instant.

    Les parenthèses intérieures délimitent la clé de partition ; ce qui suit est regroupement.

  • Clé de partition : de quoi s'agit-il ?

    Voir la réponse

    Première partie de la clé primaire : sa valeur désigne le groupe de lignes, et donc les machines, où les données sont rangées.

    Un SELECT efficace donne toujours la clé de partition en entier, sans quoi Cassandra devrait interroger tous les nœuds.

  • Les lectures d'un capteur expirent et sa partition pèse 2 Go, avec PRIMARY KEY ((capteur), instant). Quelle correction est juste ?

    • Ajouter ALLOW FILTERING à toutes les lectures
    • Mettre instant seul dans la clé de partition
    • Mettre le jour dans la clé : ((capteur, jour), instant)
    • Ajouter valeur comme colonne de regroupement
    Voir la réponse

    Mettre le jour dans la clé : ((capteur, jour), instant)

    La clé de partition n'a pas de borne de temps : la partition d'un capteur grossit sans fin. Ajouter le jour la découpe en morceaux bornés, un par capteur et par jour.