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

时间:2018-11-30 20:07:04

标签: statistics bigdata analytics audit

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

每分钟运行一次的日程安排会生成一个JSON,其中包含20k个奇怪的实体,例如具有数十个属性的实体。

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

我需要能够跟踪实体的属性状态随时间的变化,例如,回答诸如entity x的状态何时变为“待处理”之类的问题。存储此数据并生成统计信息的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

您应该将数据存储在数据库中。如果您的数据始终具有相同的结构,则可以使用“经典”数据库,例如Postgresql或Mysql。如果您的数据是杂乱的,请查看像MongoDB这样的NoSQL数据库。如果您需要使用JSON获取数据,则可以轻松地将数据从数据库导出到JSON。

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

答案 1 :(得分:0)

如果您仅更改字典中某些字段的值,并且不想使用数据库,则最好的选择是:
1)将您的Json文件转换为字符串,为此您可以使用json.dumps
2)使用diff lib来比较两个字符串(更新前后): https://docs.python.org/3.6/library/difflib.html