只在一台机器上工作的无模式数据库解决方案?

2024-04-24 22:51:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个无方案的数据库,可以在磁盘上存储大约10[TB]的数据,理想情况下,使用python客户机。建议的解决方案应该免费用于商业用途,并且具有良好的读写性能。在

这里的主要目标是存储由time stamp访问的时间序列数据,包括超过十亿条记录。在

数据将以以下方式存储:

-->;“字段_名称.YYYYMMDD.HHMMSS““

-->gt;[v1,v2,v3,v4,v5,v6](v1..v6只是floats

例如,假设:

字段名称=“番茄”

时间戳=“20060316.184356”

=[72.34,-22.83,-0.938,0.265,-2047.23]

我需要能够在给定FIELD_NAME&;TIME_STAMP组合的情况下检索(整个数组)。在

查询[“TOMATO.20060316.184356”]将返回向量[72.34,-22.83,-0.938,0.265,-2047.23]。数组的读取应该尽可能快。在

但是,我还需要一种在数组中存储(就地)标量值的方法。假设我想将时间戳2006/03/16.18:43:56上的TOMATO的第一个元素赋值为500.867。在这种情况下,我需要一个快速的机制来实现这一点,比如:

[“番茄.20060316.184356”][0]=500.867(这将在磁盘上更新)

{cd8}能起作用吗?我将只使用一台运行Linux的机器。在

说明:只有一台机器用于存储数据库。然而,我需要一个解决方案,允许多台机器连接到同一个数据库,并更新/插入/读/写数据。在


Tags: 数据gt机器数据库时间方案情况数组
3条回答

MongoDB会工作的。但是考虑到您的需求,我强烈推荐Redis。在

Redis是一个数据结构存储。在这里可以将数组存储为值,并使用键访问它们。它很容易安装/使用,而且速度快得惊人。它可以很好地工作在一个机器服务器和其他方式。在

有一些优秀的python客户机可用于Redis,如Rediscoredis-natives-py和rediswrap或最简单的redispy。在

考虑到性能、灵活性和可用性(易于接近),MongoDB可能是一个不错的选择。然而,大型数据库需要仔细规划,尤其是在备份和高可用性方面。如果没有对项目需求的进一步了解,很少有人说一台机器是否足够(如果您需要扩展选项,请查看副本集和分片)。在

更新:基于你的新信息-应该可以用MongoDB(测试和评估)。简单来说:MongoDB可以是NoSQL数据库的“MySQL”……如果你了解SQL数据库,那么你应该能够很容易地使用MongoDB,因为它借鉴了SQL世界的很多思想和概念。看看你的数据模型…它很简单,数据可以很容易地检索和存储(不需要详细说明)…我建议下载MongoDB并浏览教程。在

一个MongoDB实例可以允许多台机器访问它。但是,您必须为服务器提供特殊的命令行参数才能允许它这样做。你应该搜索一下MongoDB文档,它非常全面。mongodb认证模型的文档是here。它描述了如何在安全模式下运行Mongo,以及如何限制可以绑定到它的ip范围。在

相关问题 更多 >