基于xarray的数据库有哪些可能性?

3 人关注

我经常在python中处理地理空间数据(主要是天气预报),为了这个问题我用 xarray 做了很多事情。

替换代码0】支持转换为hdf/netcdf文件,如果你想存储数据,对再次访问的速度没有要求的话,这很好。我所寻找的是一个数据库,用于快速访问xarray的单个数据点,以建立一个可靠的WEB-API。有什么简单的方法可以将xarray存储到这样的数据库中吗?

注:一个典型的 xarray.DataArray 包含一个数值数组,坐标如纬度、经度和时间戳。数值的水平维度相当于经纬度形成的网格,第三维度相当于 xarray.DataArray 中的长度时间戳。

python
database
python-xarray
dl.meteo
dl.meteo
发布于 2019-08-23
2 个回答
Favo
Favo
发布于 2019-08-23
已采纳
0 人赞同

I would consider two options.

如果你有一个分布式文件系统的基础设施,你可以利用它来创建带有数据块的netcdf文件,用以下方法汇总数据 ncml 并将数据集发布在一个 ERDDAP 服务器。走这条路,你可以有一个体面的访问速度,并通过API休息来访问数据,以多种格式(.nc,.mat,csv,json等),你也可以把数据直接拉到你的xarray工作流中。

我还会探索使用 zarr 格式来存储你的数据,这个格式与netcdf不同,数据是以文件夹结构中的块状存储的,它也支持并发访问,用这种格式你可以 将数据存储在云供应商处 (谷歌、AWS),使用键、值存储。你还可以利用你的工作流程,使用 仪表盘 通过并行化你的分析。

如果计划是建立一个自定义的API Rest,请看一下 快速API .

只是为了扩展一下@Favo的回答。Zarr也可以使用一些数据库后端,如DBM、Redis、MongoDB和LMDB。这里有更多关于这个问题的内容。 zarr.readthedocs.io/en/stable/api/storage.html
Maximilian
Maximilian
发布于 2019-08-23
0 人赞同

我认为这将是非常令人兴奋的。你可以将你的数据以其原始格式存储,并有可能将一些减少的计算推到数据库中。