我经常处理诸如NASA MERRA之类的再分析数据。这些数据以netCDF格式下载。维度是经度,纬度和时间,并且有各种变量,例如温度,风速等。每天都有一个文件用于所有预选坐标和变量。时间分辨率是每小时一个观测值,即一个文件每个变量包含24个观测值。
典型的工作流程是:给定固定位置(以经度和纬度为特征),提取该位置从01/1990到12/1995的温度时间序列。
由于打开365 * 6 netCDF文件[从01/1990到12/1995]太慢了,选择坐标,提取温度变量并进行连接,我试图将所有下载的数据存储在关系数据库中[MySQL] ]。我的首次尝试是将所有数据存储在一个表中,并在经度和纬度上创建索引。然后,查询将简单地检索给定坐标对和时间范围的所有观测值。这真的很慢,因为该表中有数百万个观察值,而每个查询我需要检索约18万个。因此,我决定为包含完整时间序列的每对坐标创建一个表。有了坐标,就很容易选择表格并查询时间范围。这快了很多,但是现在有1300多个表,总的感觉就像我没有按原本的方式使用数据库。
我的问题:在这种情况下,构造关系数据库以实现快速查询的明智方法是什么?我使用MySQL,但我的问题并不特定于该RDBMS。 no-sql数据库会是一个明智的选择吗?
在此先感谢您的反馈。