Interrogation une famille de Cassandra colonne pour les lignes qui n'ont pas été mises à jour dans X jours

StackOverflow https://stackoverflow.com/questions/2552985

Question

Je me déplace une application basée sur MySQL existant sur Cassandra. Donc, trouver loin le modèle de données Cassandra équivalent a été assez facile, mais je suis tombé sur le problème suivant pour lequel j'apprécierais une entrée:

Considérons une table MySQL tenant des millions d'entités:

CREATE TABLE entities (
  id INT AUTO_INCREMENT NOT NULL,
  entity_information VARCHAR(...),
  entity_last_updated DATETIME,
  PRIMARY KEY (id),
  KEY (entity_last_updated)
);

Toutes les cinq minutes la table est interrogée pour les entités qui ont besoin d'être mis à jour:

 SELECT id FROM entities 
  WHERE entity_last_updated IS NULL 
     OR entity_last_updated < DATE_ADD(NOW(), INTERVAL -7*24 HOUR)
  ORDER BY entity_last_updated ASC;

Les entités renvoyées par ces requêtes sont ensuite mis à jour en utilisant la requête suivante:

 UPDATE entities 
    SET entity_information = ?, 
        entity_last_updated = NOW()
  WHERE id = ?;

Quel serait le modèle de données Cassandra correspondant qui me permettrait de stocker les informations données et efficacement interroger la table des entités pour les entités qui ont besoin d'être mis à jour (qui est: des entités qui ne sont pas mises à jour au cours des sept derniers jours)?

Était-ce utile?

La solution

Pour parvenir à ce que vous avez décrit vous devez avoir le nom de colonne comme horodatage et que vous utilisez, il vous donnera obtenir la fonction de tranche en utilisant le temps de démarrage et endtime toutes les lignes avec le nom de colonne dans cette plage. également utiliser le nom de la colonne de tri de sorte que vous obtiendrez en résultat commandé par le temps.

Autres conseils

Il faudrait analyser toutes les lignes et saisir l'horodatage de la colonne (s) qui vous intéresse. Si cela est quelque chose que vous exécutez chaque jour ou, le faire dans un emploi Hadoop devrait être bien. Si c'est quelque chose que vous exécutez toutes les quelques minutes, vous aurez besoin de trouver une autre approche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top