2015-06-04 12 views
5

Ho un'applicazione in cui la chiave di partizione "naturale" per una tabella Cassandra sembra come se fosse "cliente". Questo è il modo principale in cui vogliamo interrogare i dati, otteniamo una buona distribuzione dei dati, ecc.Scelta di una chiave di partizione per una tabella Cassandra: quante sono troppe partizioni?

Ma se ci fossero oltre 1 milione di clienti, sarebbero troppe partizioni diverse?

Devo scegliere una chiave di partizione che si traduca in un numero inferiore di chiavi di partizione?

Ho esaminato una serie di domande correlate su questo argomento, ma nessuna sembra affrontare questo particolare punto.

risposta

7

Ma se ci fossero più di 1 milione di clienti, sarebbero troppe partizioni diverse?

No. Murmur3Partitioner può gestire qualcosa come 2^64 (-2^63 a +2^63) partizioni. Cassandra è progettato per essere molto efficace nella memorizzazione di grandi quantità di dati e nel recupero tramite chiave di partizione. Ci sono restrizioni sul numero di colonne all'interno di una partizione (2 miliardi), ma per il numero totale di partizioni penso che starai bene con quello che hai.

Devo scegliere una chiave di partizione che si traduca in un numero inferiore di chiavi di partizione?

Decisamente no. Ciò potrebbe causare una crescita eccessiva delle partizioni e/o sviluppare "punti caldi" nel cluster.

L'attività principale alla base della scelta di una chiave di partizione buona consiste nel trovarne uno che (entrambi) offre una buona distribuzione dei dati nel cluster e corrisponde ai modelli di query. E da quello che sto leggendo, sembra che tu abbia fatto esattamente questo.

4

Penso che tu fraintenda come viene utilizzata la chiave di partizione. Il partizionatore consigliato prende i valori della chiave della partizione e quindi calcola un hash a 128 bit da essi. L'hash viene chiamato il token del record ed è il valore del token che determina dove viene archiviato il record. Ogni nodo di Cassandra ha una serie di intervalli di token ad esso associati. Se il token di un record cade con un intervallo di un nodo, il record viene memorizzato su quel nodo. Il numero di partizioni non è determinato dalla scelta della chiave di partizione: è il numero di intervalli di token nel cluster. Ciò equivale approssimativamente al numero totale di vnodi selezionato quando sono stati configurati i nodi del data store.

2

Sei a posto con la chiave di partizione corrente. Non c'è bisogno di andare per la chiave di partizione composita per guidare più partizioni. Stai facendo una modellazione dei dati delle serie temporali, facendo crescere più colonne al secondo. In caso contrario, la chiave di partizione corrente può andare per molti milioni di clienti.

Problemi correlati