开发者社区> 问答> 正文

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

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

展开
收起
官和方 2016-07-26 15:12:45 5180 0
1 条回答
写回答
取消 提交回答
  • 阿里云高级技术专家

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

    主键

    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)) {
        ...
    }
    2019-07-17 20:00:16
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
TableStore在社交类场景下的应用 立即下载
表格存储实时数据流Steam的技术揭秘和应用场景 立即下载
表格存储(TableStore) 立即下载