我很难确定是否可以使用opentsdb来存储车辆gps数据,例如车辆ID、时间戳、纬度、经度opentsdb是这方面的理想选择还是我应该使用hbase。我见过很多使用hbase的gps数据的例子,例如hortonworks的例子。但是我还没有看到一个使用opentsdb获取gps数据的例子。我的问题是,如果我们可以使用opentsdb的gps数据,那么它的表设计将是什么?
qcbq4gxm1#
opentsdb用于分析数据,在您的例子中是这样的;地点,时间戳,在那个地点看到的汽车数量。对于一辆车,我认为应该使用hbase,vehicleid作为rowkey(如果id不是连续的),hbase中的一个单元格已经有timestamp,lat作为column key,long。作为列数据。或者可以将lat和long放在列键中,而不将任何内容写入列值。或者,如果您想查询某个特定车辆的最后10个位置,您可以将列键设为(long.max\u value-timestamp),这样它们将被排序,当您选择一行(vehicleid)时,您只需在扫描结果中获得前10个结果,然后关闭result对象。如果你还有其他问题,请告诉我。编辑:回答以下评论;然后,你可以像这样存储数据,rowkey:vehicleid+yyyymmdd(同一行中一天的所有车辆信息),列键(long.max_value-时间戳)表示数据时间,列数据:所有特殊格式的信息,我指的是一个protobuf对象或类似的东西,它将存储为字节数组,可以自动转换byte[]为对象,反之亦然protobuf很容易。或者对于列数据,可以这样尝试,列键:(long.max\u值-时间戳)+loc,(long.max\u值-时间戳)+速度等。。列数据:lat、long表示loc、integer表示速度、Angular 等。。这个rowkey结构使您能够轻松有序地获取最后一个数据点,列数据结构并不那么重要,这取决于您希望如何编写代码。
1条答案
按热度按时间qcbq4gxm1#
opentsdb用于分析数据,在您的例子中是这样的;地点,时间戳,在那个地点看到的汽车数量。对于一辆车,我认为应该使用hbase,vehicleid作为rowkey(如果id不是连续的),hbase中的一个单元格已经有timestamp,lat作为column key,long。作为列数据。或者可以将lat和long放在列键中,而不将任何内容写入列值。或者,如果您想查询某个特定车辆的最后10个位置,您可以将列键设为(long.max\u value-timestamp),这样它们将被排序,当您选择一行(vehicleid)时,您只需在扫描结果中获得前10个结果,然后关闭result对象。
如果你还有其他问题,请告诉我。
编辑:回答以下评论;
然后,你可以像这样存储数据,
rowkey:vehicleid+yyyymmdd(同一行中一天的所有车辆信息),
列键(long.max_value-时间戳)表示数据时间,
列数据:所有特殊格式的信息,我指的是一个protobuf对象或类似的东西,它将存储为字节数组,可以自动转换byte[]为对象,反之亦然protobuf很容易。
或者对于列数据,可以这样尝试,
列键:(long.max\u值-时间戳)+loc,(long.max\u值-时间戳)+速度等。。
列数据:lat、long表示loc、integer表示速度、Angular 等。。
这个rowkey结构使您能够轻松有序地获取最后一个数据点,列数据结构并不那么重要,这取决于您希望如何编写代码。