Предложение структуры таблицы Cassandra и способ запроса

Я пытаюсь создать следующую иерархию: UserId как rowKey, Почасовые временные ряды как столбцы и внутри каждого почасового столбца я хочу иметь информацию о пользователе. strong> например, почасовая активность.

{
   UserId:long
   {
      Timestamp:datetime{
         pageview: integer,
         clicks:integer
      }
   }

Я читал, что этого можно добиться с помощью supercolumns, но в то же время упоминалось, что supercolumns сейчас устарели. Если это правда, какие альтернативы я могу использовать?

Не могли бы вы предоставить мне пример экономии CQL/Java, как мне создать и вставить структуру такого типа в Cassandra?

Спасибо!


person Wild Goat    schedule 14.04.2014    source источник


Ответы (2)


Для этого вы можете использовать составной первичный ключ, я добавляю CQL-запрос создания таблицы для таблицы. И вы можете использовать столбец счетчика для кликов.

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
clicks int,
pageview int,
PRIMARY KEY(userid,time_stamp)

)

person Dinusha    schedule 14.04.2014
comment
большое спасибо за ответ. Еще один быстрый вопрос! Знаете ли вы, как я могу округлить данные time_stamp до часов дня и не включать минуты? - person Wild Goat; 14.04.2014
comment
Я думаю, вы можете сделать это на уровне программирования. Например: Java или Python - person Dinusha; 14.04.2014

Если ваша информация подвергается определенному использованию и доступу вместе. Например, если вам в любое время требуются как клики, так и просмотр страницы, я бы посоветовал вам использовать его как магазин json.

CREATE TABLE user_click_by_hour(
userid long,
time_stamp timestamp,
val text,
PRIMARY KEY(userid,time_stamp)
)

val — это объект json, содержащий клики, просмотры страниц и т. д.

Преимущество

1. Вам не нужно беспокоиться об изменении таблицы для добавления дополнительного столбца, который добавляет нулевое значение для каждой предыдущей записи.

  1. Если эти данные предназначены для роста, вы обязательно сэкономите много места, поскольку в каждом узле метаданных на один столбец меньше.
person Ananth    schedule 15.04.2014