我正在创建一个系统,使用SNMP以(可能)5分钟的间隔轮询设备以获取有关各种指标的数据,例如CPU利用率,磁盘利用率,温度等.最终目标是以时间序列图的形式为系统用户提供可视化.
我已经看过了,在过去使用的RRDTool,但拒绝了它作为存储捕获的数据无限地将我的项目很重要,我想更高层次和更灵活的访问捕获的数据.所以我的问题是:
什么是更好的关系数据库(如MySQL或PostgreSQL)或非关系数据库或NoSQL数据库(如MongoDB或Redis)在查询数据进行图形处理时的性能.
给定一个关系数据库,我将使用一个data_instances表,其中将存储为所有设备测量的每个度量捕获的每个数据实例,并包含以下字段:
领域: id fk_to_device fk_to_metric metric_value timestamp
当我想在特定设备上绘制特定指标的图形时,我必须查询此单个表,过滤掉其他设备,以及为此设备分析的其他指标:
SELECT metric_value, timestamp FROM data_instances
WHERE fk_to_device=1 AND fk_to_metric=2
Run Code Online (Sandbox Code Playgroud)
此表中的行数为:
d * m_d * f * t
Run Code Online (Sandbox Code Playgroud)
其中d是的数量的装置,m_d是累计度量的数目被记录为所有设备,f是频率在其中数据被轮询和t是总量时间系统已收集数据.
对于一年中每5分钟记录3个设备的10个度量标准的用户,我们将有不到500万条记录.
没有索引fk_to_device并且fk_to_metric扫描这个不断扩展的表将花费太多时间.因此,索引上述字段以及timestamp(用于创建具有本地化期间的图表)是必需的.
MongoDB具有集合的概念,与表不同,这些可以在没有设置的情况下以编程方式创建.有了这些,我可以为每个设备划分数据存储,甚至为每个设备记录每个指标.
我没有使用NoSQL的经验,也不知道它们是否提供任何查询性能增强功能,例如索引,但是前一段提出在数据存储在NoSQL下的结构中进行大多数传统的关系查询工作.
具有正确索引的关系解决方案是否会在一年内减少爬行?或者NoSQL方法的基于集合的结构(与我存储的数据的心智模型相匹配)是否提供了明显的好处?
database time-series non-relational-database relational-database nosql
我正在使用.NET中的C#开发一个小应用程序,我希望有一个小型轻量级数据库,它不会占用太多资源.
能否列出一些最知名的轻量级数据库软件.
数据库架构的目的是什么?我在哪里可以找到更多相关信息?它不是表,它不是数据库,它是什么?
我想用pgadmin客户端管理我的heroku数据库.到现在为止,我一直在这样做psql.当我使用来自heroku pg:credentials连接de DB的数据时pgadmin,我获得:
发生了错误:
连接到服务器时出错:致命错误:数据库"postgres"权限被拒绝详细信息:用户没有CONNECT权限.
有关如何实现连接的任何指南?
我需要查询数据库以获取列名,而不是与表中的数据混淆.举例来说,如果我有一个名为表中EVENT_LOG包含eventID,eventType,eventDesc,和eventTime,然后我会想检索查询,并没有其他的字段名.
我找到了如何做到这一点:
但我需要知道:如何在Oracle中完成这项工作?
我在wordpress phpMyadmin中收到此错误
#145 - Table './DB_NAME/wp_posts' is marked as crashed and should be repaired
Run Code Online (Sandbox Code Playgroud)
当我登录phpMyadmin时,它说wp_posts是"正在使用"
我的网站目前因此而下降.
我用Google搜索了这个问题,但我没有在phpMyadmin上看到"修复"按钮.请让我知道如何解决这个问题.我不知道在哪里发布PHP命令.请指教,我对PHP的熟练程度非常基础.
我目前有一个在云实例上运行的实时redis服务器,我想将这个redis服务器迁移到新的云实例,并将该实例用作我的新redis服务器.如果是MySQL,我会从旧服务器导出数据库并将其导入新服务器.我应该如何用redis做到这一点?
PS:我不打算设置复制.我想将redis服务器完全迁移到新实例.
为什么我需要其中两个?当我必须使用一个或另一个?
如何在Django中查询/过滤并忽略我的查询字符串的情况?
我有类似的东西并且喜欢忽略以下情况my_parameter:
MyClass.objects.filter(name=my_parameter)
Run Code Online (Sandbox Code Playgroud) 当我尝试理解CAP中的"可用性"(A)和"分区容差"(P)时,我发现很难理解各篇文章中的解释.
我觉得A和P可以在一起(我知道事实并非如此,这就是我无法理解的原因!).
用简单的术语解释,A和P是什么以及它们之间的区别?