Je suis nouveau à NoSQL et BigTable, et j'essaie d'apprendre comment je peux (et si je devrais) utiliser des super colonnes pour créer un schéma convivial BigTable . En ce qui concerne la modélisation des données NoSQL, il semblerait qu'au lieu d'utiliser des schémas RDBMS JOIN-centric, je devrais agréger mes données dans des tables plus grandes pour les normaliser si possible. Sur cette base, voici un schéma simple que j'envisagé pour un « utilisateur », que je suis en train de créer pour Cassandra:Listes dans NoSQL/BigTable Data Modeling & Super Columns (avec Cassandra)
User: {
KEY: UserId {
name: {
first,
last
},
age,
gender
}
};
La famille de la colonne ci-dessus (utilisateur), dont la clé est un « UserID », est composé de 3 colonnes (nom, âge, sexe.) Sa colonne 'nom' serait une super colonne composée des colonnes 'first' et 'last'.
Ce que je demande est:
Que signifie le CQL 3.0 ressembler à pour créer cette famille colonne « utilisateur » avec des super colonne « nom » en son sein? (Mise à jour: Cela ne semble pas possible.)- Devrais-je utiliser des super colonnes (comme ceci)? Dois-je utiliser autre chose?
- Quelle est une autre façon de représenter ce schéma?
- Comment représenter une liste de valeurs dans une famille de tables/colonnes?
Voici quelques liens utiles sur ce que je trouve, mais que je ne comprends pas tout à fait assez clairement pour répondre à ma question:
- Create a Cassandra schema for a super column with metadata
- Cassandra: How to create column in a super column family?
- Modeling relational data with Cassandra
Merci!
Mise à jour:
Après beaucoup de recherches, j'apprends quelques choses:
- Vous ne pouvez pas créer des super colonnes à l'aide CQL; il pourrait y avoir d'autres mécanismes pour le faire, mais CQL ne semble pas être l'un d'entre eux.
- La syntaxe de SQL 3.0 semble dériver d'une approche centrée sur la 'COLUMN FAMILY' vers une syntaxe basée sur la table 'SQL'.
J'ai modifié mes questions en conséquence.