Представление супер колонки в 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 здесь.

Другие вопросы по тегам