5

Próbowałem czytania na datastax blogów i dokumentacji, ale nie mógł znaleźć żadnych konkretnych informacji na temat tegoJak utrzymać 2 stoły Cassandra wewnątrz samej partycji

Czy istnieje sposób, aby zachować 2 tabele w Cassandry należeć do tej samej partycji? Na przykład:

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

Tutaj muszę się upewnić, że obie z tych tabel/CF będzie żyć na tej samej partycji w ten sposób do tego samego account_id obu tych zbioru danych mogą być pobierane z tego samego węzła

Wszelkie wskazówki są bardzo cenne.

Ponadto, jeśli ktoś ma pewne doświadczenie w korzystaniu z UDT (typy zdefiniowane przez użytkownika), chciałbym zrozumieć, jak działa wsteczna kompatybilność. Jeśli zmodyfikuję "addr" UDT, aby mieć kilka dodatkowych atrybutów (np. Zip_code2 int i tekst nazwy), w jaki sposób działają starsze wiersze, które mają te atrybuty? Czy jest on kompatybilny?

Dzięki

Odpowiedz

10

Jeśli dwa akcji tabela ta sama strategia replikacji i sam klucz partycji będą colocate ich partycje. Tak długo, jak te dwie tabele są w tym samym KEYSPACE i ich klucze działowe dopasować

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

Wszelkie podane ACCOUNT_ID będzie na (i replikowane do) tych samych maszyn.

+0

Doskonale! +1 dla szybkiej i czystej odpowiedzi. Czy możesz pomóc w odpowiedzi na drugą część pytania na temat UDT? – im2kul

+0

Najlepiej rozdzielić niepowiązane pytania na różne pytania dotyczące SO. Dzięki temu usługa będzie lepsza w przyszłości dla osób szukających podobnych odpowiedzi. – RussS

+0

Mam to. Zadałem kolejne pytanie: http://stackoverflow.com/questions/34300141/user-defined-type-udt-behavior-in-cassandra – im2kul