5

Ho provato leggendo sui blog datastax e documentazione, ma non ho trovato alcuna specifica su questoCome mantenere 2 tavoli Cassandra entro stessa partizione

C'è un modo per tenere 2 tavoli in Cassandra appartenere alla stessa partizione? Per esempio:

CREATE TYPE addr (
    street_address1 text, 
    city text, 
    state text, 
    country text, 
    zip_code text, 
); 

CREATE TABLE foo (
    account_id timeuuid, 
    data text, 
    site_id int, 
    PRIMARY KEY (account_id) 
}; 

CREATE TABLE bar (
    account_id timeuuid, 
    address_id int, 
    address frozen<addr>, 
    PRIMARY KEY (account_id, address_id) 
); 

Qui ho bisogno di assicurare che entrambe queste tabelle/CF vivranno sulla stessa partizione così per lo stesso account_id entrambi questi set di dati possono essere recuperati dallo stesso nodo

Qualsiasi suggerimento è molto apprezzato.

Inoltre, se qualcuno ha esperienza nell'uso di UDT (Tipi definiti dall'utente), vorrei capire come funzionerebbe la retrocompatibilità. Se modifico l'UDT "addr" per avere un paio di ulteriori attributi (ad esempio, zip_code2 int e nome del testo), come funzionano le righe precedenti che hanno questi attributi? È anche compatibile?

Grazie

risposta

10

Se due parti tavolo la stessa strategia di replica e la stessa chiave di partizione saranno colocate loro partizioni. Quindi, fintanto che le due tabelle sono nello stesso spazio delle chiavi e le loro chiavi di partizione corrispondono

PRIMARY KEY (ACCOUNT_ID) == PRIMARY KEY (ACCOUNT_ID, address_id)

Qualsiasi dato account_id sarà in (e replicato a) le stesse macchine.

+0

Eccellente! +1 per una risposta rapida e pulita. Puoi per favore rispondere all'altra parte della domanda su UDT? – im2kul

+0

È meglio separare le domande non correlate in diverse domande SO. Ciò rende il servizio migliore in futuro per le persone che cercano risposte simili. – RussS

+0

Capito. Ho pubblicato un'altra domanda: http://stackoverflow.com/questions/34300141/user-defined-type-udt-behavior-in-cassandra – im2kul

Problemi correlati