Является ли Cloud Memorystore и FireStore хорошей комбинацией для кэширования результатов запросов, которые я вычисляю?

У меня есть вопрос. У меня есть запрос, который вычисляет данные агрегации из Firestore (получить все документы от пользователя x после метки времени y с помощью ключа z). Результаты в сотнях документов.

Затем я рассчитываю ежедневное, еженедельное, месячное и годовое значение (AVG, SUM, MAX и т. д.) из этого набора данных. Результат - объект:

{ "d": 100: { "sum": 100, "max": 23, "avg": 20 }, "w": .... , "m": { ....} ...}

Я хочу сохранить этот объект, чтобы мне не приходилось каждый раз снова выполнять запрос и расчет.

- Стоит ли сохранять это в Cloud Memorystore - Скорость пересчета одних и тех же данных составляет около 10-100 раз в день, когда пользователь вызывает мою службу, и эти данные должны присутствовать

Нет опыта работы с Memorystore и его использованием...


person Riël    schedule 23.12.2019    source источник
comment
насколько сильно меняются ваши данные в Firestore? Если кеширование данных является хорошим вариантом, полностью зависит от этого, и что будет дороже: либо сохранить кеш, либо снова выполнить расчет, поэтому не могли бы вы поделиться некоторыми подробностями, пожалуйста.   -  person Soni Sol    schedule 24.12.2019
comment
Данные будут меняться 5-10 раз в день, но мне нужно будет получать все данные несколько раз между ними. По сути, это входящие данные из HealthKit, в которых приложение выполняет агрегацию и делает выбор.   -  person Riël    schedule 24.12.2019
comment
Где запускается приложение, использующее эти значения?   -  person Soni Sol    schedule 25.12.2019
comment
ИТ работает в Appengine   -  person Riël    schedule 26.12.2019


Ответы (1)


Да, это хорошая комбинация, вы можете использовать ключи с ограниченным сроком жизни.

Одна важная вещь, которую следует принять во внимание, — это то, сколько времени вы дадите значениям, чтобы они оставались живыми в экземпляре Memorystore, поскольку, если оно слишком низкое, у вас не будет попаданий в кеш, а если оно слишком высокое, у вас могут быть неправильные значения. .

Чтобы узнать больше по этому вопросу, вы можете прочитать эту статью, в которой говорится о сроке действия ключа.

Как вы упомянули, вы используете App Engine, имейте в виду, что если это стандарт, вам необходимо настроить бессерверный коннектор VPC. Здесь можно увидеть весь процесс подключения.

person Soni Sol    schedule 26.12.2019