我正在通过服务器的http请求检索结构化数值数据(浮动2-3个十进制空格)。数据以数字形式出现,然后转换为数组/列表。我想在我的计算机上本地存储每组数据,以便我可以进一步操作它。
由于需要收集很多这些数据集,因此只需将每个数据集写入.txt文件中似乎效率不高。另一方面,我知道有各种解决方案,如mongodb,python到sql接口等等,但我不确定应该使用哪一个,哪个最适合这种情况。
创建的数据库也必须能够与不同的语言(如MATLAB)进行交互和查询。
答案 0 :(得分:1)
我建议使用像peewee这样的轻量级ORM,它可以使用许多SQL数据库作为存储方法。然后就可以选择你想要的数据库了。最简单的数据库是sqlite,但如果你认为切换到另一个数据库(如PostgreSQL或MySQL)的速度不够快,那就太简单了。
ORM的优点是您可以使用Python语法与SQL数据库进行交互,而不必学习任何SQL。
答案 1 :(得分:1)
如果您只是想将它存储在某处,那么MATLAB可以使用它;从数据库supported by matlab中选择您的选择,然后为该数据库安装适当的Python驱动程序。
Python中的所有数据库都有一个标准API(称为dbapi),因此有一种统一的数据库处理方式。
由于您没有告诉我们以后如何打算处理这些数据,因此很难提供任何进一步的细节。
我的想法是,我希望基本上将所有数据下载到 我的机器以便我以后可以在本地操作(运行分析 并对其执行某些数学运算)而不是 不断地从服务器上调用它。
为此,您可以使用文本文件中的任何存储机制到MATLAB支持的任何数据库 - 因为Python支持MATLAB支持的所有数据库。
您可以选择将数据存储为" text"然后在应用程序端(即MATLAB端)进行数值计算。或者您可以选择将数据存储为数字/浮点数/小数(取决于您需要的精度),这将允许您在数据库端进行一些计算。
如果您只想将其存储为文本并在应用程序端进行计算,那么最简单的选项是mongodb,因为它是无模式的。您将数据存储为JSON - 这可能是从Web检索的格式。
如果您希望利用某些数学函数或其他功能(例如,地理空间计算),那么更好的选择是您熟悉的传统数据库。您必须创建一个模式并为每个传入的数据对象定义数据类型;然后适当地存储它们以利用数据库的查询功能。
答案 2 :(得分:1)
您考虑过HDF5吗?它对数值数据非常有效,并且得到了Python和Matlab的支持。