【问题标题】:construction of a data model on cassandra / CQL在 cassandra / CQL 上构建数据模型
【发布时间】:2020-05-31 17:39:42
【问题描述】:

我有一个包含以下字段的车辆跟踪表:vehicle_id, id tracking, time_tracking, longitude, latitude。如何建表,以便我可以根据 time_tracking 对所有车辆进行最新跟踪。如何建立表格也可以根据 time_tracking 对车辆进行最后跟踪。提前谢谢你。

【问题讨论】:

标签: cassandra cassandra-2.0 cqlsh


【解决方案1】:

根据指定的列,您可以尝试以下架构。

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);

由于您存储在 DESC 的 CLUSTERING ORDER 中,因此获取最新记录总是很容易,您需要在查询中添加“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;

希望这会有所帮助。

【讨论】:

  • 感谢您的回复,这很有帮助,但我不知道您是否对获取所有车辆的最后跟踪有任何想法,例如:车辆 100:最后跟踪,车辆 101:最后跟踪,车辆102:最后跟踪。没有指定车辆的 ID。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2014-03-04
  • 2019-01-25
  • 2015-01-26
  • 1970-01-01
相关资源
最近更新 更多