如何跟踪大量实体的JSON数据随时间的变化



我有一个系统,它每分钟按计划检查大量实体的状态。对于每个实体,都会有一个JSON文件,其中包含指示不同属性状态的字段。系统将这些JSON文件转储到网络共享上。

每分钟运行一次的调度都会生成一个JSON,其中包含20k多个具有数十个属性的实体。

[
{
"entityid": 12345,
"attribute1": "queued",
"attribute2": "pending"
},
{
"entityid": 34563,
"attribute1": "running",
"attribute2": "successful"
}
]

我需要能够跟踪实体的属性状态随时间的变化,例如,回答entity x的状态何时变为"挂起"之类的问题。存储这些数据和生成统计数据的最佳方式是什么?

您应该将数据存储在数据库中。如果你的数据总是有相同的结构,你可以使用Postgresql或Mysql这样的"经典"数据库。如果你的数据是不规则的,可以看看像MongoDB这样的NoSQL数据库。如果您需要在JSON中获取数据,您可以轻松地将数据从数据库导出到JSON。

下面是一篇讨论JSON和数据库的文章:https://hashrocket.com/blog/posts/faster-json-generation-with-postgresql

如果您只更改dict中某些字段的值,而不想使用DB,最好的选择是:
1(将Json文件转换为字符串,为此您可以使用json.dumps
2(使用diff-lib比较两个字符串(更新前后(:https://docs.python.org/3.6/library/difflib.html

相关内容

  • 没有找到相关文章

最新更新