我们正在使用提供的基于 API 的数据,它允许我们分析与提供的 GeoJSON 区域和指定时间戳相关的大量 GIS 数据。当我们的提供商汇总数据时,可以将其标记为完整并通过回调 URL 提醒我们的服务。从那里,我们有一个我们已经运行的报告的列表及其相关的下载链接。我们需要处理的报告之一是具有 4 列的 TSV 文件,如下所示:
deviceId | timestamp | lat | lng
有时,如果我们分析的区域足够大,这些文件可能会超过 60+GB。下载链接链接到文件的压缩版本,因此我们无法直接从下载 URL 中读取它们。我们正在尝试获取此 TSV 中按 deviceId 分组并按时间戳排序的数据,以便我们可以使用路由服务中的 lat/lng 沿道路网络进行路由。到目前为止,我们的大部分应用程序都使用了 Javascript,但这项服务带来了独特的问题,可能需要额外的软件和/或语言。
好奇其他人如何解决处理和处理这种大小的数据的问题。
我们已经尝试下载文件,将其通过管道传输到 ReadStream 中,并分配机器上所有可用的内核来单独处理批量数据。这行得通,但它并没有我们想要的那么快(即使是 36 核)。