查询 SQL + HDF5 混合

Posted

技术标签:

【中文标题】查询 SQL + HDF5 混合【英文标题】:Querying SQL + HDF5 hybrids 【发布时间】:2013-07-19 15:15:22 【问题描述】:

我正在开发用于数据分析的混合 SQL(使用 mysql)和 HDF5 数据库解决方案。我的一些数据非常适合关系,SQL 作为一种查询语言非常方便和有效,但是我有大量的数值数据(具有数千个或元素/行/列的数组和矩阵)。因此,我将它们保存在 HDF5 文件中,并根据每个观察值之间的一些共性安排组层次结构,这样如果我将用于派生该层次结构的字段添加到 SQL Select 查询中,并在关系数据库与该特定观察的数据集中的位置,我得到了快速定位 HDF5 文件中的数值数据所需的一切。

我正在用 Python、Numpy 和 h5py 编写所有这些内容。但是,在某些时候,我想让整个事情变得更加用户友好,甚至可以在网络服务器上使用它来进行查询和可视化。我最初的猜测是从 Django 或 SQLAlchemy 之类的 ORM 开始,然后添加一些我的实际脚本来处理 HDf5。有没有人有这种混合方法的经验,尤其是在这个级别?对新手有什么建议吗?

【问题讨论】:

【参考方案1】:

您可能对这项工作感兴趣: Supporting a Light-Weight Data Management Layer over HDF5

顺便说一句,在这项工作之后已经开发了更多的功能,包括索引、采样和结构分组。

【讨论】:

我知道报纸。但是这个软件在某处可用吗? 它还没有开源,但如果你需要,我可以把源代码发给你。 遗憾的是,我的声誉不允许投票(目前),但非常感谢您的文章,它非常有趣!【参考方案2】:

您可能会受益于使用在文件中检索 HDF5 数据集地址(使用 H5Oget_info)并将其存储在数据库记录中。然后,数据集地址可以与 H5Oopen_by_addr() 一起使用,直接打开 HDF5 数据集,无需遍历 HDF5 文件中的组层次结构。

见: http://www.hdfgroup.org/HDF5/doc/RM/RM_H5O.html#Object-GetInfo 和 http://www.hdfgroup.org/HDF5/doc/RM/RM_H5O.html#Object-OpenByAddr

【讨论】:

以上是关于查询 SQL + HDF5 混合的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 查询中混合参数的 Doctrine Criteria

如何使用 Laravel 的流畅查询构建器混合原始 SQL 和非原始 SQL

用dataframe重写sql查询;如何从选择中混合不同的来源

使用 Laravel Eloquent 和命名绑定的 SQL 查询:混合命名参数和位置参数

查询 hdf5 日期时间列

Python - 快速 HDF5 时间序列数据查询