1、设计方案:
由于Hbase是列式存储的数据库,而索引主要靠行健rowkey,所以对表设计的相关问题主要考虑行健设计。考虑到坐标数据实时存储问题,由于是每隔一段时间进行坐标数据的推送和存储,所以行健设计采用:订单短号+时间戳设计的方式,一方面可以保证行健的唯一性,另一方面可以便捷的进行数据的查询。为了保证Hbase坐标数据的查询,可以借助Mysql关系型数据库的辅助作用,用mysql来存储轨迹数据对应的订单号与时间等要素,这样做的好处是可以用mysql查询存储的日志,以及借助mysql搜索订单对应的时间,用订单号和时间组合成行健进行Hbase数据查询。
2、具体表设计:
Mysql表设计:
Hbase表设计:
3、查询轨迹数据方法:
根据订单号搜索mysql,查询当前订单号对应的数据。
订单号跟时间戳组合的行健在查询时候,可以设置startKey和endKey范围查询;或者根据List去查询数据,两种方法皆可以实现。
若查询涉及到其他要素,也就是其他列,可以利用二级索引进行增加索引表,便于查询,要看具体的应用场景。