我可以将opentsdb数据库用于车辆GPS数据吗?

时间:2015-12-22 05:27:45

标签: hadoop gps hbase hortonworks-data-platform opentsdb

我无法确定是否可以使用opentsdb存储车辆GPS数据 例如。 vehicleId,时间戳,纬度,经度

opentsdb是否适用于此,或者我应该使用Hbase。我见过许多使用hbase进行gps数据的例子,例如。 hortonworks的例子。但是我还没有看到一个将opentsdb用于gps数据的例子。

我的问题是,如果我们可以将opentsdb用于gps数据,那么它的表设计是什么?

1 个答案:

答案 0 :(得分:1)

OpenTSDB用于分析数据,在这种情况下就像这样;位置,时间戳,在该位置看到的汽车数量。对于一辆车,我认为你应该使用hbase,vehicleid作为rowkey(如果id不是顺序的),hbase中的单元已经有时间戳,而lat作为列键,long。作为列数据。或者您可以将lat和long放到列键中,而不是将任何内容写入列值。或者,如果您想查询特定车辆的最后10个位置,您可以将列密钥设为(Long.MAX_VALUE - 时间戳),这样它们就会被订购,当您选择行(vehicleid)时,您可以获得前10个结果扫描结果,然后关闭结果对象。

如果您有任何其他问题,请与我们联系。

编辑:回答以下评论;

然后,你可以存储这样的数据,

  • rowkey:vehicleid + yyyyMMdd,(同一行中一天车辆的所有信息),
  • 列密钥;(Long.MAX_VALUE - 数据时间的时间戳),
  • 列数据:特殊格式的所有信息,我的意思是一个protobuf对象或类似的东西,它将被存储为字节数组,并且可以通过protobuf自动转换为byte []到object,反之亦然。

对于列数据,您可以尝试这种方式,

  • 列键:( Long.MAX_VALUE - timestamp)+ loc,(Long.MAX_VALUE - timestamp)+ speed等。
  • 列数据:lat,long表示loc,整数表示速度,角度等。

这个rowkey结构为您提供了简单有序的最后数据点,列数据结构不是那么重要,取决于您希望如何编写代码。