Question

J'ai une question suivante: est-il possible de créer une famille de colonnes à Cassandra qui ressemblerait à ceci ci-dessous et comment définir sa structure:

Users = {   //CF
     AlexS : { //row key
         Address : { //supercolumn
               state: "NJ",
               country: "US",
               phone : { //super column
                    zip: "00283",
                    number : { // supercolumn
                       home: "23756511",
                       mobile : "23756512"
                    } 
               } 
         }
     }   
}

Était-ce utile?

La solution

Super colonne imbriquée dans Super Colonne pour quatre niveaux?Autant que je sache, ce n'est pas possible.Parce que vous devez spécifier en référençant quelle famille de colonnes de cette insertion actuelle vous voulez.Considérez ce qui suit, vous pouvez avoir défini la famille de colonnes de niveau supérieur à être de type colonne famille Super.Ensuite, vous pouvez avoir plusieurs super colonnes dans cette famille Super Colonne et ces super-colonnes auront plusieurs colonnes= paires de valeur qui sont appelées sous-colonnes.Par exemple,

list Users;    
Using default limit of 100
-------------------
RowKey: AlexS
=> (super_column=Address,
     (column=country, value=US, timestamp=1331614891360000)
     (column=state, value=NJ, timestamp=1331614891355000))
=> (super_column=number,
     (column=home, value=23756511, timestamp=1331614891406000)
     (column=mobile, value=23756512, timestamp=1331614891406001))
=> (super_column=phone,
     (column=zip, value=00283, timestamp=1331614891396000))

1 Row Returned.
Elapsed time: 21 msec(s).

Autres conseils

Une autre option consiste à stocker une partie ou la totalité de l'entité utilisateur comme JSON, car c'est comme ça que vous le représentez.Ensuite, si vous devez faire une recherche inversée, écrivez simplement votre propre index pour le faire.Dans ce cas, votre clé est "Alexs", alors vous auriez une colonne "adresse" qui contiendrait la représentation JSON (ou la sérialisation que vous souhaitez utiliser) des données d'adresse.

Ensuite, si vous souhaitez rechercher par numéro de téléphone, vous auriez un index adulte avec clé= numéro de téléphone, puis une colonne pour chaque ID utilisateur.

C'est une approche assez courante avec Cassandra.

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