2015-10-05 13 views
6

Ho iniziato di recente a lavorare con dati pesanti e massicci che devono anche passare attraverso una transazione regolare.Come lavorare con e interrogare famiglie di colonne dinamiche in Phantom per Cassandra?

Scegliendo Cassandra, il mio modello di dati utilizza colonne dinamiche. Capisco che con CQL si possano modificare tabelle e inserire o interrogare colonne per ottenere i dati richiesti.

Tuttavia, stavo usando il client Phantom con Scala per Cassandra e leggendo attraverso la documentazione non riuscivo a trovare un modo per scrivere o interrogare da famiglie di colonne dinamiche.

Dato che usiamo classi di casi, come si può lavorare con colonne dinamiche con Cassandra in Scala?

risposta

6

Suggerisco di non modificare dinamicamente gli schemi di tabelle come parte del proprio modello di dati. Cassandra è un database orientato alle righe con partizionamento e clustering di righe all'interno delle partizioni. Quindi qualsiasi cosa tu stia cercando di rappresentare aggiungendo o rimuovendo le colonne sarebbe meglio gestita impostando i valori in un insieme fisso di colonne.

Sebbene Cassandra consenta di modificare le definizioni delle tabelle per aggiungere e rimuovere colonne, questo verrà normalmente eseguito solo quando si aggiunge una nuova funzionalità a un'applicazione, in modo da consentire a un operatore di modificare manualmente lo schema e quindi utilizzare il codice dell'applicazione modificato utilizzare il nuovo schema.

Ritengo che per un'applicazione client sia pericoloso modificare lo schema creando o modificando tabelle poiché si corre il rischio che più client eseguano modifiche contemporaneamente.

+0

Inoltre, c'è una domanda complicata di confidenza quando si modifica dinamicamente una tabella. – DineMartine

+0

@Jim secondo te, quale sarebbe il modo migliore per gestire i dati dinamici con Cassandra? Vengo dal mondo MongoDB dove le cose sono piuttosto dinamiche. È possibile aggiungere un po 'di materiale in un documento indipendentemente da quale sia esattamente il tipo di dati. – chbh

+1

Si consiglia di esaminare i tipi di dati di raccolta di Cassandra: elenchi, mappe e set. Esistono anche tipi definiti dall'utente, e se tutto il resto fallisce, è possibile memorizzare le cose come BLOB. –

Problemi correlati