5

Я пытался читать на datastax блогах и документации, но не смогли найти какой-либо конкретной по этомуКак сохранить 2 таблицы Кассандры в одном разделе

Есть ли способ, чтобы держать 2 таблицы в Кассандре принадлежать к той же перегородке? Например:

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

Здесь мне нужно убедиться, что оба этих таблиц/CF будет жить на том же разделе, что путь для того же ACCOUNT_ID оба этих набора данных могут быть выбраны из того же узла

Любые указатели приветствуются.

Кроме того, если у кого-то есть опыт использования UDT (User Defined Types), я хотел бы понять, как будет работать обратная совместимость. Если я модифицирую UDT «addr», чтобы иметь еще несколько атрибутов (например, zip_code2 int и текст имени), как работают более старые строки, которые имеют этот атрибут? Это даже совместимо?

Благодаря

ответ

10

Если две таблицы один и та же стратегия репликации и тот же ключ раздела они будут colocate их разделы. Так до тех пор, как две таблицы находятся в одной и той же и пространство ключей их ключи разделов соответствуют

PRIMARY KEY (account_ID) == PRIMARY KEY (account_ID, address_id)

Любой данный account_id будет на (и реплицируются) на те же машины.

+0

Отлично! +1 для быстрого и чистого ответа. Не могли бы вы ответить на другую часть вопроса по UDT? – im2kul

+0

Лучше всего разделить несвязанные вопросы на разные вопросы SO. Это делает услугу лучше в будущем для людей, которые ищут похожие ответы. – RussS

+0

Получил это. Я задал еще один вопрос: http://stackoverflow.com/questions/34300141/user-defined-type-udt-behavior-in-cassandra – im2kul