Представление супер колонки в Cassandra CQL
В настоящее время у меня есть следующая схема для одной из моих таблиц:
id
name
...
country
- id
- name
- city
- id
- name
Я просматривал документацию Cassandra и не могу найти каких-либо четких примеров или демонстраций того, как я представляю свои суперколонки в семействе колонок. У меня есть следующий код:
CREATE COLUMNFAMILY table (
id varint,
name varchar,
<<regular columns omitted>>
country ..?,
PRIMARY KEY = (id)
);
1 ответ
Решение
Вы можете создать пользовательский тип, чтобы прикрепить несколько полей данных к столбцу.
Например, в вашем случае
country
- id
- name
- city
- id
- name
Может быть представлен в UDT как
CREATE TYPE mykeyspace.countryudt (
id uuid,
name text,
city map<uuid, text>
);
Теперь определение таблицы будет выглядеть так:
CREATE COLUMNFAMILY table (
id varint,
name varchar,
<<regular columns omitted>>
country frozen <countryudt>,
PRIMARY KEY = (id)
);
Дополнительная ссылка на UDT здесь.