OTS怎样存储GPS数据和查询操作-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

OTS怎样存储GPS数据和查询操作

官和方 2016-07-26 15:12:45 2956

现在要做一个物流跟踪业务,前面是用mysql做车辆GPS数据存储,现在要改用OTS来实现,主要功能是接收GPS设备传输的GPS数据存储和车辆轨迹查询,现不知道怎样来设计OTS的表结构(主要是分片键和主键要怎样设计)才能更好的使用OTS,查询轨迹时要通过车牌和时间段来查询,
目前mysql结构大概如下:
id: string类型,值为UUID
carno: string类型,车牌号
recordtime: timestamp类型,GPS记录时间
lon: string类型,经度
lat: string类型,纬度
望有经验朋友指点怎样来建OTS表更合理?SDK怎样做查询操作?十分感谢!!

存储 关系型数据库 MySQL 定位技术 开发工具
分享到
取消 提交回答
全部回答(1)
  • 好慢
    2019-07-17 20:00:16

    不清楚每辆车更新的频率多少。如果频率不高的话(比如几十秒到几分钟一次),可以采用如下的表结构:

    主键

    1. carno: string类型
    2. recordtime: int类型

    属性列:

    • lon: double类型
    • lat: double类型

    查询的话,可用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)) {
        ...
    }
    1 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题