现在要做一个物流跟踪业务,前面是用mysql做车辆GPS数据存储,现在要改用OTS来实现,主要功能是接收GPS设备传输的GPS数据存储和车辆轨迹查询,现不知道怎样来设计OTS的表结构(主要是分片键和主键要怎样设计)才能更好的使用OTS,查询轨迹时要通过车牌和时间段来查询,
目前mysql结构大概如下:
id: string类型,值为UUID
carno: string类型,车牌号
recordtime: timestamp类型,GPS记录时间
lon: string类型,经度
lat: string类型,纬度
望有经验朋友指点怎样来建OTS表更合理?SDK怎样做查询操作?十分感谢!!
不清楚每辆车更新的频率多少。如果频率不高的话(比如几十秒到几分钟一次),可以采用如下的表结构:
主键
属性列:
查询的话,可用getRange。举例来说,你要查车辆A从[BEGIN,END]这段时间的轨迹点。
RowPrimaryKey start = new RowPrimaryKey();
start.addPrimaryKeyColumn("carno", PrimaryKeyValue.fromString("A"));
start.addPrimaryKeyColumn("recordtime", PrimaryKeyValue.fromLong(BEGIN));
RowPrimaryKey end = new RowPrimaryKey();
end.addPrimaryKeyColumn("carno", PrimaryKeyValue.fromString("A"));
end.addPrimaryKeyColumn("recordtime", PrimaryKeyValue.fromLong(END+1));
RangeIteratorParameter query = new RangeIteratorParameter("TABLENAME");
query.setInclusiveStartPrimaryKey(start);
query.setExclusiveEndPrimaryKey(end);
for(Row row: client.createRangeIterator(query)) {
...
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。