Рекомендации по дизайну хранилища данных Google App Engine: Как обнаружить и обновить только те данные, которые были изменены? - PullRequest
0 голосов
/ 14 июня 2019

Я работаю в приложении на базе GAE, которое использует хранилище данных.

В этом приложении я работаю над функцией, в рамках которой мы выбираем данные с внешней платформы и заполняем их в нашем хранилище данных.Этот механизм извлечения предназначен для работы как автоматически, так и вручную.Сейчас я сталкиваюсь со следующим сценарием:

Шаг 1. Извлекаем триггеры, извлекаем данные с внешней платформы и сохраняем их в хранилище данных.Эти данные могут иметь полезную нагрузку в виде: {'field_1': 'abc', 'field_2': 'def', 'field_3': 'ghi'}

Шаг 2. Теперь в моем приложении я обновил полезную нагрузкуи устанавливает значение field_1 как «123».Теперь полезная нагрузка в хранилище данных выглядит следующим образом: {'field_1': '123', 'field_2': 'def', 'field_3': 'ghi'}

Шаг 3: Теперь выборка снова запускаетсяи он извлекает те же самые старые данные, т.е. {'field_1': 'abc', 'field_2': '456789', 'field_3': 'ghi'}

Если я храню эту полезную нагрузку вслепую в хранилище данных,перезапишет значение field_1 с 123 до abc.Я не хочу, чтобы это случилось.Я хочу сохранить значения, которые я обновил вручную на шаге № 2.т.е. я хочу, чтобы конечная полезная нагрузка хранилища данных была такой: {'field_1': '123', 'field_2': '456789', 'field_3': 'ghi'}

У любого есть любойИдея, как мне этого добиться?

  1. У меня есть решение, т. е. на шаге 2 сохраните информацию, которая будет содержать, какие поля обновляются, давайте назовем ее manual_update_metadata и когда будет вызывать модульснова извлекает полезную нагрузку, затем обновляет только те поля, которые отсутствуют в manual_update_metadata.Но я просто хочу убедиться, что это решение соответствует лучшим практикам и в соответствии с рекомендованными методами проектирования.Любые комментарии по этому поводу будут высоко оценены.Спасибо!
...