【发布时间】:2012-10-10 18:19:16
【问题描述】:
我需要将用户记录的 GPS 轨迹存储到数据库中。轨道每移动 5 米就会包含一个标记,用于在地图上绘制一条线。我估计有 200 公里的轨道,这意味着 40,000 个 lnlt 标记。我估计最少有 50,000 个用户,每个用户有 20 条 200 公里的轨道。这意味着至少有 400 亿个 lnlt 标记。
这也需要扩展,因此对于 100 万用户,我需要 8000 亿个 GPS 标记的容量。
由于每组 40,000 个标记属于单个轨道,因此我们指的是 1 到 2000 万条记录/组 GPS 轨道。
要求: 用户将请求在移动应用程序中的 Google 地图上查看这些轨迹。
关系: 我目前有 2 张桌子。表一有:[trackid]、[userid]、[comment]、[distance]、[time]、[top speed]。
表 2 有 [trackid] [longitude] [latitude],这是所有 GPS 标记的存储位置。在保持读取性能的同时存储大量 GPS 数据的有效方法是什么?
新信息:
将 GPS 数据存储在 KML 文件中,以便在 Google 地图上将其显示为轨迹,这是一种节省数据库空间的好解决方案。将 KML 压缩到 KMZ(基本上是带有 KMZ 扩展名的压缩 KML)会大大减少文件大小。 KMZ 的加载速度比 GPX 快得多,并且可以作为 KML 层与 Google Maps API 集成。 See this information from Google 以获得进一步帮助。到目前为止,这似乎是满足预期要求的最佳解决方案。
【问题讨论】:
-
您甚至可以将其存储在平面文件中,一个标记具有固定长度,因此您可以轻松查找文件。
-
我不确定产品推荐是否符合网站指南的主题或建设性......但听起来这是高度标准化的数据。任何好的 RDBMS 都应该可以工作。
-
你能把这些压缩成轨道的 B-SPLINE 吗?
-
@DavidStratton 我认为在 RDBMS 中存储此类数据的开销很大。它基本上是二进制数据。
-
@karl “这是 google 的解决方案,来自他们制作的不同应用程序”+1 开源。很高兴他的想法能帮助您找到问题的合适答案。
标签: mysql database database-design gps nosql