J'ai toujours lu que Cassandra est bon si votre application change fréquemment et que des fonctionnalités sont ajoutées fréquemment. Cela a du sens, puisque vous n'avez aucun schéma fixe, vous pouvez ajouter des colonnes aux lignes pour répondre à vos besoins, au lieu d'exécuter une requête ALTER TABLE qui peut geler votre base de données pendant des heures pour les très grandes tables.Comment remplir une famille de colonnes Cassandra à partir des colonnes d'une autre personne?
Cependant, j'ai un problème hypotétique que je ne suis pas capable de résoudre. Disons que j'ai:
CREATE COLUMN FAMILY Students
with comparator='CompositeType(UTF8Type,UTF8Type),
and key_validation_class=UUIDType;
Chaque élève a une colonne générique (vous savez, meta: nom d'utilisateur, meta: mot de passe, meta: nom de famille, etc.), ainsi que chaque étudiant peut suivre des cours N. Cette relation N-N est résolue en utilisant la dénormalisation, en ajoutant N colonnes à chaque étudiant (cours: ID1, cours: ID2). De l'autre côté, je peux avoir un cours CF, où chaque ligne contient tous les UUID suivants.
Je peux donc demander "quels cours sont suivis par XXX" et "quels étudiants suivent le cours YYY".
Le problème est le suivant: que se passe-t-il si je n'ai pas créé la deuxième famille de colonnes? Peut-être qu'au moment de la création de la demande, il n'était pas obligatoire de faire suivre aux étudiants un cours spécifique.
Ceci est un exemple simple, mais je crois que c'est assez commun. "Avec Cassandra, vous planifiez les CF en termes de requêtes au lieu de relations". J'ai besoin de cette requête maintenant, alors qu'au début, ce n'était pas nécessaire. Étant donné une table d'étudiants avec des milliers d'entrées, comment remplissez-vous les cours CF? Est-ce un travail pour Hadoop, Pig ou Hive (je n'ai jamais touché à l'un d'entre eux, juste deviner).
duplicata possible de [Quel est le moyen le plus rapide de copier la famille Colonne dans Cassandra?] (Http://stackoverflow.com/questions/12086395/what-is-the-fastest-way-to-copy-column-family -in-cassandra) –
@ChrisGerken: Je ne pense pas. Il ne veut pas copier des données; il veut générer de nouvelles données basées sur des données existantes. Cela nécessite des outils différents. –
Eh bien, le fait important, c'est qu'il ya un moyen de faire ce travail assez rapidement, en parallèle à travers Pig et que l'opération ne sera pas DOS l'application derrière ... –