Динамическое семейство столбцов в кассандре для каналов

В моем случае я должен преобразовать статические столбцы (CQL3 CF) в динамические столбцы (чтобы я мог увеличивать или уменьшать столбцы во время выполнения). Я работаю в DSE 4.5.

В этом семействе столбцов я должен писать каналы (вставка данных будет в реальном времени). Например: CF будет хранить каналы пользователей на основе идентификатора пользователя и времени, а user1 может иметь 10 столбцов, user2 может содержать 20 столбцов (каждый столбцы пользователя могут меняться).

В настоящее время в CQL3 CF,

CREATE TABLE USER_FEED (
userid int,
timestamp int,
col1 string,
col2 int,
col3 string,
....
PRIMARY KEY (userid,timestamp)

Мне нужно разработать модель данных. Я думаю, что мне нужно создать Dynamic CF. Но мой вопрос: могу ли я объединить строки, чтобы сделать ключ строки? Если да, то как я могу читать данные с комбинированной rowkey И могу ли я хранить данные как данные в Dynamic CF? Есть ли какой-либо пример или вариант использования?

1 ответ

Конечно, вы можете не заполнять определенные столбцы данной строки или не удалять один или несколько столбцов существующих строк, но все столбцы всех строк должны быть объявлены при создании таблицы.

На другом конце спектра вы можете просто объявить все данные пользовательской переменной как blob, но тогда вы не можете ссылаться на определенные столбцы в запросе.

Или... вы можете определить столбец "user_data", который является картой, а затем вы можете заполнить или удалить элементы этого столбца карты. Но тогда запросы более громоздки, и все части пользовательских данных должны иметь одинаковый тип, например, строку.

Или... вы можете пойти по blob-маршруту и использовать DSE/Solr с полевым входным трансформатором для извлечения полей blob и заполнения динамических столбцов Solr, которые затем могут быть легко запрошены.

Фактически, подход столбца карты приводит к тому, что DSE/Solr неявно создает динамические поля Solr для каждого элемента карты, поэтому разница между использованием карты или blob с полевым входным трансформатором может быть скорее вопросом предпочтения, стиля и удобства.

Как вы ожидаете запроса данных?

licensed under cc by-sa 3.0 with attribution.