Терабайты данных необходимо хранить в Cassandra для событий с отметкой времени ... нужна помощь по моделированию данных - PullRequest
0 голосов
/ 23 декабря 2019

Требуется мнение о данных моделирования в Кассандре, где у пользователя есть время начала сеанса и время окончания сеанса. Как мне хранить их для быстрого чтения и аналитики. Мне нужно использовать одну таблицу, вставлять данные, когда сессия начинается, и обновлять, когда сессия заканчивается, или как?

Я также хочу удалить данные за год, поэтому мне следует использовать TTL? Как насчет удаления старых данных, которые не имеют TLL, как я могу удалить программно?

QRY1: последние 10 завершенных сеансов для пользователя (с началом и концом для сеанса) QRY2: Пакеты событий процесса по крайней мере10 / пакет QRY3: удаление данных старше месяца

My data sample is like below.
* Record can be a start event
{
"event": "start",
"area": "US",
"userId": "0a2d12a1a7e145de8bae44c0c6e06629", "sessionId": "4a0c43c9-c43a-42ff-ba55-67563dfa35d4", "ts": "2016-12-02T12:48:05.520022"
}

* Record can be an end event
{
"event": "end",
"userId": "0a2d12a1a7e145de8bae44c0c6e06629", "sessionId": "4a0c43c9-c43a-42ff-ba55-67563dfa35d4", "ts": "2016-12-02T12:49:05.520022"
}

Проблемы:

  1. Невозможно сохранить данные размером более 50 КБ в таблице, созданной, как показано ниже. Он повреждается, когда данные вставляются сверх этого предела.
"CREATE TABLE IF NOT EXISTS {}.{} (userId text, area text, event text, sessionId text, ts timestamp,  PRIMARY KEY((userId, sessionId), ts));".format(keyspace, table)
Как программно добавлять записи в таблицу
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...