每日千万级空间数据,快速筛选出区域数据方案。
离线数据:每日6G的数据量,大约5000万行数据,每次都是一次性获取一个月的数据(180G左右)
每行数据含有经纬度信息
需要快速筛选出区域内,比如:给定的贵阳市的数据,需要筛选出某个公园对应的数据进行分析
目前做得尝试
预处理,原本是txt文本存储数据,每日一千个文件,去掉错误指标等数据,大约每日还剩余一千万到两千万的数据量,保存为一个parquet文件,按日区分数据,这样处理之后需要处理的数据每日600M-1G左右,当月总共40GB左右(这一步花费时间久点无所谓)
使用rtree建立每日的空间索引,查询区域时使用这个空间索引进行查询对应区域内数据。(查询框选区域采样点,希望这一步时间能极大的缩减,目前一个正常区域在10分钟左右吧)
再计算区域内数据的指标,正常区域也就几十MB(这一步有了区域采样点之后,数据量不是很大几秒就可以完成)
这样处理之后感觉还是很慢,对于这种需要筛选经纬度的数据,各位还有什么更好的解决办法吗?
这是我使用索引查询一个区域(从贵阳市的所有采样点查询黔灵山公园),使用已经预处理且添加索引的数据,使用的是geo.json文件,候选点是bbox框选区域粗选,后续匹配点就是这个geo.json区域内的点数据。
这一步感觉时间还是很慢,每日数据处理30s左右,有没有什么办法还能更快一点呢?
目前能勉强使用,使用索引这种方式,计算某个区域采样点数据,先使用这种方式吧。