построение модели данных на Кассандре / CQL - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть таблица отслеживания транспортных средств, которая содержит следующие поля: vehicle_id, id tracking, time_tracking, longitude, latitude. Как построить таблицу так, чтобы я мог иметь самое последнее отслеживание всех транспортных средств согласно time_tracking. Как построить таблицу, чтобы иметь последнее отслеживание транспортного средства также в соответствии с time_tracking. Заранее спасибо.

1 Ответ

0 голосов
/ 18 февраля 2020

На основе указанных столбцов вы можете попробовать следующую схему.

CREATE TABLE IF NOT EXISTS vehicle_details (time_tracking timestamp,
                                      vehicle_id int,
                                      id int,
                                      latitude varchar,
                                      longitude varchar,
                                      PRIMARY KEY ((time_tracking), vehicle_id)
                                      )WITH CLUSTERING ORDER BY (time_tracking DESC);

Поскольку вы храните в ПОРЯДКЕ КЛАСТЕРИЗА DES C, всегда будет очень легко получить последние записи, вам необходимо добавить «LIMIT» к вашему запросу,

Ex: select * from vehicle_details where time_tracking=20200101 limit 10;

Вы можете выполнить запрос на выборку, основываясь на time_tracking, и можете добавить vehicle_id, чтобы получить подробную информацию о транспортном средстве для конкретной временной отметки.

Ex: select * from vehicle_details where time_tracking=20200101 and vehicle_id = 122 limit 10;

Надеюсь, это поможет.

...