我正在尝试存储每分钟收到多次更新的设备的 GPS 坐标。我决定使用 AWS TimeStream,因为我收集的所有数据都是时间序列,但现在当我尝试查询特定区域中的信息时,我需要在查询中进行复杂的计算,类似于this解决方案。
由于似乎没有任何可用的时空数据库,我有什么选择?我想根据时间和 GPS 坐标查询数据库,但我对时间序列数据库和地理空间数据库不够熟悉,无法正确理解其中的权衡
如果您通过 AWS IoT Core 接收传感器遥测数据,则有一种相当简单的方法可以完成您想要的操作。使用 IoT Events 将数据直接发送到 Timestream,并从那里查询它们的测量结果。
您不需要像其他答案所建议的那样做自己的三角函数。以这个 MQTT 消息为例:
SandyPoint/Distillation/P-101
{
"timestamp": 1692337059,
"ts": "2023-07-18-1692337059638",
"ts_dt": "2023-07-18",
"ts_tm": "2023-07-18 05:37:39",
"id": 8675870,
"process": "f3c080ebe3e9cffe",
"deviceID": "a959ed7e2d3486cd",
"equipID": "P-101",
"temp_f": 90.96802396406997,
"psi_suc": 14.739556249140529,
"psi": 187.99425090417242,
"psi_dis": 197.21189356902917,
"flow": 1587.7548017813767,
"rpm": 898,
"power": 241,
"lube_oil": 5.00478680058105,
"city": "Pasadena",
"countryCode": "US",
"zip": "77507",
"lat": 29.599055,
"lon": -95.015881,
"region": "TX"
}
因为它具有 lat 和 lon 值,如果您知道发送 CRS(在本例中为 [WGS84]https://epsg.io/4326),您可以快速访问大量数据。您提到每分钟多次更新 - 您可以轻松支持 AWS 上的数十万台设备。
数据进入 Timestream 后,您可以将其用作 Grafana 等分析和可视化工具的数据源。我的环境会在几秒钟内返回最后 10,000 个坐标,并且可以安排更快的结果。
希望这有帮助