如何在数据库中存储 8000 亿个 GPS 标记 [关闭]

2023-12-31

我需要将用户记录的 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]、[距离]、[时间]、[最高速度]。

表 2 包含 [trackid] [longitude] [latitude],这是存储所有 GPS 标记的位置。在保持读取性能的同时存储如此大量的 GPS 数据的有效方法是什么?

新的信息:

将 GPS 数据存储在 KML 文件中,以便将其显示为 Google 地图上的轨迹,是节省数据库空间的良好解决方案。将 KML 压缩为 KMZ(基本上是带有 KMZ 扩展名的压缩 KML)可进一步大大减小文件大小。 KMZ 加载速度比 GPX 快得多,并且可以作为 KML 图层与 Google 地图 API 集成。从谷歌查看此信息 https://developers.google.com/maps/documentation/javascript/layers#KMLLayers为进一步协助。这似乎是迄今为止满足预期要求的最佳解决方案。


与往常一样,特定数据库的选择取决于您想要如何存储信息以及如何使用它。因此,在不知道项目的确切要求以及数据关系的情况下,最好的办法是阅读有关该主题的内容,以确定最适合您的特定产品或存储模型。

一个好的起点是阅读比较数据库性能和使用的博客(见附件):

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在数据库中存储 8000 亿个 GPS 标记 [关闭] 的相关文章

随机推荐

  • 如何区分提交与其父提交

    除了编写别名或脚本之外 是否有更短的命令来获取特定提交的差异 git diff 15dc8 15dc8 如果您只提供单个提交 IDgit diff 15dc8 它与针对 HEAD 的提交不同 Use git show COMMIT 它将向您
  • 可以突出显示街道的一部分吗?

    我需要突出显示两个十字路口之间的街道部分 我发现一年多前就有人提出过类似的问题 请参阅here https stackoverflow com questions 2155032 highlighting whole street with
  • Kotlin 中的 Swift 'if let' 语句等效项

    在 Kotlin 中是否有与下面的 Swift 代码等效的代码 if let a b val else 您可以使用let 函数如下 val a b let If b is not null run If b is null 请注意 您需要调
  • 将双变量视为布尔值

    测试 double 变量是否等于 0 的更好方法 效率 最佳实践 是什么 1 if a double else OR 2 if a double 0 else 第二个通常更好 更明确地说明您正在做什么 我通常更喜欢if a double 0
  • Zend Framework:如何将旧路由 301 重定向到新的自定义路由?

    我有大量旧路线 需要将其重定向到新路线 我已经在 Bootstrap 中定义了我的自定义路由 protected function initRoutes router Zend Controller Front getInstance gt
  • 如何将模板添加到 Kendo 网格工具栏

    我正在尝试将自定义模板添加到 Kendo MVC 网格 我的模板应该包含两件事 创建按钮以将新记录添加到网格中 自动完成框用于过滤网格中的数据 我正在尝试以下代码 ToolBar toolbar gt toolbar Template
  • 启用/禁用每个控制器/操作方法的会话状态

    我们正在构建一个 ASP NET MVC 应用程序 该应用程序将部署在支持缓存等功能的硬件负载平衡器后面 我们的建议是手动定义负载均衡器应缓存哪些 URL 模式 这对我们来说将是一个相当简单的过程 因为我们有相对静态的 目录 页面 然后是非
  • 将文本绕成 svg 或 canvas 中的圆形

    将文本适合网站上的圆圈 使其随圆圈的曲线流动而不是矩形边界框的一个好的解决方案是什么 这就是我想要实现的目标 页面上有许多黑色圆圈 固定大小 每个圆圈旁边都有一个文本区域 当文本输入到文本区域时 它会出现在黑色圆圈中 以两个轴为中心 如果输
  • Python - 检查字符串是否包含列表中的任何元素

    我需要检查字符串是否包含列表的任何元素 我目前正在使用这个方法 engWords the a and of be that have it for not engSentence the dogs fur is black and whit
  • AngularJS 发送 OPTIONS 请求而不是 POST

    我正在尝试将图片上传到我的 S3 存储桶 我正在使用 AngularJS v1 2 13 当我使用他们的文档中显示的简单案例时 使用以下命令提交表单 action标签 一切正常 但是 如果我想用 Angular 的方式来做ng clickA
  • 优化磁盘IO

    我有一段代码可以分析来自非常大 10 100GB 二进制文件的数据流 效果不错 是时候开始优化了 目前磁盘IO是最大的瓶颈 使用的文件有两种类型 第一种类型的文件由 16 位整数流组成 在 I O 后必须对其进行缩放 以转换为具有物理意义的
  • 当搜索过滤器值从 javascript 更改时,智能表不会更新[重复]

    这个问题在这里已经有答案了 我在用角度智能桌 https github com lorenzofox3 Smart Table 当我使用 st search 指令的搜索过滤器时 当我从 javascript 表更改其值时 不会得到更新 这是
  • MySQL 基于日期列按周分组?

    我有一个带有日期列的表 我想尝试进行分组 使用一周作为时间参考来计算每周发生的行数 我已经这样做了好几天了 使用 GROUP BY Date Date Column 但我不确定如何按周执行此操作 Thanks SELECT FROM GRO
  • Actor 内的异步 API 调用和异常

    我知道关于PipeTo https stackoverflow com a 25225274 1180426 but 有些东西 比如嵌套延续上的同步等待 似乎违背了异步和等待的方式 https github com petabridge a
  • 如何使用 protobuf-net 或其他序列化程序序列化第 3 方类型?

    I have List
  • 如何检查连接字符串是否有效?

    我正在编写一个应用程序 其中用户手动提供连接字符串 我想知道是否有任何方法可以验证连接字符串 我的意思是检查它是否正确以及数据库是否存在 你可以尝试连接一下吗 为了快速 离线 验证 也许可以使用DbConnectionStringBuild
  • 如何在 C 中便携式打印 int64_t 类型

    C99 标准具有字节大小的整数类型 如 int64 t 我正在使用 Windows 的 I64d当前格式 或未签名 I64u like include
  • Spark:广播对象时内存不足

    我尝试广播一个不太大的地图 作为文本文件保存到 HDFS 时约为 70 MB 但出现内存不足错误 我尝试将驱动程序内存增加到11G 执行程序内存增加到11G 但仍然出现相同的错误 memory fraction设置为0 3 缓存的数据也不多
  • 从 url 下载 zip 并使用 SBT 将其解压到资源中

    我想从 URL 下载 zip 文件 我的数据库 并将其解压到特定文件夹 例如资源 中 我想在我的项目构建 sbt 文件中执行此操作 这样做的适当方法是什么 我知道sbt IO已经解压并下载 我找不到使用下载的好示例 我发现的示例不起作用 有
  • 如何在数据库中存储 8000 亿个 GPS 标记 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi