如何高效筛选每日千万级空间数据中的特定区域数据?

每日千万级空间数据,快速筛选出区域数据方案。

  1. 离线数据:每日6G的数据量,大约5000万行数据,每次都是一次性获取一个月的数据(180G左右)
  2. 每行数据含有经纬度信息
  3. 需要快速筛选出区域内,比如:给定的贵阳市的数据,需要筛选出某个公园对应的数据进行分析

目前做得尝试

  1. 预处理,原本是txt文本存储数据,每日一千个文件,去掉错误指标等数据,大约每日还剩余一千万到两千万的数据量,保存为一个parquet文件,按日区分数据,这样处理之后需要处理的数据每日600M-1G左右,当月总共40GB左右(这一步花费时间久点无所谓)
  2. 使用rtree建立每日的空间索引,查询区域时使用这个空间索引进行查询对应区域内数据。(查询框选区域采样点,希望这一步时间能极大的缩减,目前一个正常区域在10分钟左右吧)
  3. 再计算区域内数据的指标,正常区域也就几十MB(这一步有了区域采样点之后,数据量不是很大几秒就可以完成)

这样处理之后感觉还是很慢,对于这种需要筛选经纬度的数据,各位还有什么更好的解决办法吗?

image.png
这是我使用索引查询一个区域(从贵阳市的所有采样点查询黔灵山公园),使用已经预处理且添加索引的数据,使用的是geo.json文件,候选点是bbox框选区域粗选,后续匹配点就是这个geo.json区域内的点数据。
这一步感觉时间还是很慢,每日数据处理30s左右,有没有什么办法还能更快一点呢?

目前能勉强使用,使用索引这种方式,计算某个区域采样点数据,先使用这种方式吧。

阅读 430
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进