我可以将 opentsdb 数据库用于车辆 GPS 数据吗?
Can I use opentsdb database for vehicle gps data?
我无法确定是否可以使用 opentsdb 存储车辆 GPS 数据
例如。 vehicleId、时间戳、纬度、经度
opentsdb 是这个的理想选择还是我应该使用 Hbase。我见过很多将 hbase 用于 gps 数据的示例,例如。霍顿工厂的例子。但我还没有看到一个将 opentsdb 用于 gps 数据的示例。
我的问题是如果我们可以将 opentsdb 用于 gps 数据,那么它的 table 设计是什么?
OpenTSDB 用于分析数据,在您的情况下是这样的;位置、时间戳、在该位置看到的汽车数量。对于一辆车,我认为你应该使用 hbase,vehicleid 作为 rowkey(如果 id 不是顺序的),hbase 中的一个单元格已经有时间戳,并且 lat 作为列键,long。作为列数据。或者您可以将纬度和经度放入列键中,而不向列值写入任何内容。或者如果你想要一个查询,比如获取特定车辆的最后 10 个位置,你可以将你的列键设置为(Long.MAX_VALUE - 时间戳),这样当你 select 一行( vehicleid) 您可以在扫描结果中获得前 10 个结果,然后关闭结果对象。
如果您有任何其他问题,请告诉我。
编辑:回答下面的评论;
然后,你可以这样存储数据,
- rowkey: vehicleid+yyyyMMdd , (同一行一天的所有车辆信息),
- column key;(Long.MAX_VALUE - timestamp) 为一个数据时间,
- 列数据:所有特殊格式的信息,我的意思是一个 protobuf 对象或类似的东西,它将被存储为字节数组,并且可以通过 protobuf 轻松地将 byte[] 自动转换为对象,反之亦然。
或者对于列数据,你可以这样试试,
- 列键:(Long.MAX_VALUE - 时间戳)+loc,(Long.MAX_VALUE - 时间戳)+速度等。
- 列数据:纬度,loc 的经度,速度、角度等的整数。
此行键结构使您可以轻松有序地获取最后一个数据点,列数据结构并不那么重要,取决于您要如何编写代码。
我无法确定是否可以使用 opentsdb 存储车辆 GPS 数据 例如。 vehicleId、时间戳、纬度、经度
opentsdb 是这个的理想选择还是我应该使用 Hbase。我见过很多将 hbase 用于 gps 数据的示例,例如。霍顿工厂的例子。但我还没有看到一个将 opentsdb 用于 gps 数据的示例。
我的问题是如果我们可以将 opentsdb 用于 gps 数据,那么它的 table 设计是什么?
OpenTSDB 用于分析数据,在您的情况下是这样的;位置、时间戳、在该位置看到的汽车数量。对于一辆车,我认为你应该使用 hbase,vehicleid 作为 rowkey(如果 id 不是顺序的),hbase 中的一个单元格已经有时间戳,并且 lat 作为列键,long。作为列数据。或者您可以将纬度和经度放入列键中,而不向列值写入任何内容。或者如果你想要一个查询,比如获取特定车辆的最后 10 个位置,你可以将你的列键设置为(Long.MAX_VALUE - 时间戳),这样当你 select 一行( vehicleid) 您可以在扫描结果中获得前 10 个结果,然后关闭结果对象。
如果您有任何其他问题,请告诉我。
编辑:回答下面的评论;
然后,你可以这样存储数据,
- rowkey: vehicleid+yyyyMMdd , (同一行一天的所有车辆信息),
- column key;(Long.MAX_VALUE - timestamp) 为一个数据时间,
- 列数据:所有特殊格式的信息,我的意思是一个 protobuf 对象或类似的东西,它将被存储为字节数组,并且可以通过 protobuf 轻松地将 byte[] 自动转换为对象,反之亦然。
或者对于列数据,你可以这样试试,
- 列键:(Long.MAX_VALUE - 时间戳)+loc,(Long.MAX_VALUE - 时间戳)+速度等。
- 列数据:纬度,loc 的经度,速度、角度等的整数。
此行键结构使您可以轻松有序地获取最后一个数据点,列数据结构并不那么重要,取决于您要如何编写代码。