Как отследить изменение данных JSON с течением времени для большого количества объектов? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть система, которая каждую минуту проверяет состояние большого количества объектов по расписанию.Для каждой сущности будет файл JSON, в котором есть поля, указывающие статусы для различных атрибутов.Система создает дампы этих файлов JSON на сетевом ресурсе.

При каждом запуске расписания, которое выполняется каждую минуту, генерируется JSON с 20 тысячами нечетных объектов, подобных этим, имеющим десятки атрибутов.

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

Мне нужно иметь возможность отслеживать изменение статуса атрибутов сущностей с течением времени, например, отвечать на вопросы, например, когда статус entity x стал «ожидающим».Каков наилучший способ хранить эти данные и генерировать статистику?

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

В случае, если вы изменяете только значение некоторых полей в вашем диктанте и не хотите использовать БД, лучше всего было бы:
1) преобразовать файл Json в строку, для этого выможно использовать json.dumps,
2) Использовать diff lib для сравнения обеих строк (до и после обновления): https://docs.python.org/3.6/library/difflib.html

0 голосов
/ 30 ноября 2018

Вы должны хранить ваши данные в базе данных.Если ваши данные всегда имеют одинаковую структуру, вы можете использовать «классическую» базу данных, такую ​​как Postgresql или Mysql.Если ваши данные имеют неправильную форму, посмотрите на базы данных NoSQL, такие как MongoDB.Если вам нужно получить данные в JSON, вы можете легко экспортировать данные из базы данных в JSON.

Вот статья, в которой обсуждается JSON и база данных: https://hashrocket.com/blog/posts/faster-json-generation-with-postgresql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...