Domanda

Ho una domanda successiva: è possibile creare una famiglia di colonne a Cassandra che sarebbe simile a questa sottostante e come definire la sua struttura:

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

È stato utile?

Soluzione

Super colonna nidificata all'interno di Super Column per quattro livelli?Per quanto ne so, non è possibile.Perché è necessario specificare facendo riferimento a quale famiglia di colonne di quell'inserzione corrente vuoi che sia.Considera quanto segue, è possibile definire la famiglia di colonne di alto livello per essere di tipo colonna tipo super.Quindi è possibile disporre di più super-colonne all'interno di questa famiglia Super Column e questo supercolugno avrà più colonne= Valore coppie che sono chiamati come sottocombagni.Ad esempio,

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).
.

Altri suggerimenti

Ancora un'altra opzione è di memorizzare parte o tutta l'entità dell'utente come JSON, poiché è così che lo stai raffigurando.Quindi se è necessario eseguire una ricerca inverso, scrivere semplicemente il tuo indice per farlo.In tal caso, la tua chiave è "Alexs", allora avresti una colonna "indirizzo" che conterrebbe la rappresentazione JSON (o qualunque sia la serializzazione che si desidera utilizzare) dei dati dell'indirizzo.

Quindi, se si desidera cercare per numero di telefono, avresti un indice Grown con chiave= numero di telefono, quindi una colonna per ciascun ID utente.

Questo è un approccio piuttosto comune con Cassandra.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top