Кассандра - лучшее моделирование таблицы для следующего запроса? - PullRequest
1 голос
/ 29 апреля 2020

Я sh, чтобы выполнить следующий запрос:

SELECT value,occurredAt,venueName FROM Transaction_by_card WHERE card = 1234123412341234

и ожидать нескольких сотен результатов для каждой карты, как и ваш обычный кредит счет карты.

Я думал о моделировании таблицы, например:

(карта int, произошло отметка времени, текст места события, значение int ПЕРВИЧНЫЙ КЛЮЧ (карта, отметка времени) С КЛАСТЕРНЫМ ЗАКАЗОМ Происшествие: c)

Это лучшая модель для моего варианта использования?

1 Ответ

4 голосов
/ 29 апреля 2020

Что ж, просто убедитесь, что общее количество записей на одну карту должно быть менее 100 МБ (правило большого пальца на Кассандре), но я бы предпочел гораздо меньшее значение, чем это.

Если вы предполагаете, что размер вашего результата может быть больше, вы можете делать разбивку по времени
Например, основанное на месяце ведро будет выглядеть так:

(card int, occurredAt timestamp, year int, month int, venueName text, value int PRIMARY KEY ( (card, year, month) timestamp) WITH CLUSTERING ORDER BY occurredAt desc)

месяц: 04 и 2020 год будут производными от произошедшего в timstampp.

...