Требуется мнение о данных моделирования в Кассандре, где у пользователя есть время начала сеанса и время окончания сеанса. Как мне хранить их для быстрого чтения и аналитики. Мне нужно использовать одну таблицу, вставлять данные, когда сессия начинается, и обновлять, когда сессия заканчивается, или как?
Я также хочу удалить данные за год, поэтому мне следует использовать 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"
}
Проблемы:
- Невозможно сохранить данные размером более 50 КБ в таблице, созданной, как показано ниже. Он повреждается, когда данные вставляются сверх этого предела.
"CREATE TABLE IF NOT EXISTS {}.{} (userId text, area text, event text, sessionId text, ts timestamp, PRIMARY KEY((userId, sessionId), ts));".format(keyspace, table)
Как программно добавлять записи в таблицу