Firestore - лучший способ получить исторические записи с интервалом?
Я пользуюсь облачным пожарным магазином (с пламенным тарифным планом), и каждую минуту я храню цену акции. Вот как выглядит документ:
{ ingestTimeEpoch: 1511468780797, price:20, stockName:foo }
Я хочу иметь возможность получать последние 30 цен с интервалом в 15 минут, например, от 1 минуты назад, 16 минут назад, 31 минуты назад и т. Д. Я могу просто получить все записи в коллекции, и получить 0-ю цену в массиве, 14-ю цену, 29-ю цену и т. д.... но что-то подобное заставит меня использовать 30 цен * 15-минутный интервал = 450 операций чтения в минуту, что составляет 648 000 операций чтения в день по плану моего пламени. квота (250 тыс. чтений / день).
И я не думаю, что смогу хранить эти записи раз в 15 минут (вместо каждых 1 минуты), так как они нужны мне раз в минуту для других запросов. Кроме того, я отслеживаю более 1 акции, поэтому нужно попытаться получить эти значения для всех них - раз в минуту.
1 ответ
Я не думаю, что есть какие-либо возможности запросов, которые позволят вам сказать "дайте мне каждую пятнадцатую запись".
Вместо того, чтобы искать эту серебряную пулю, я бы добавил несколько дублирующих данных, которые упростят ваш запрос. Если вам нужна одна цена за каждые 15 минут, создайте дополнительную коллекцию, которая будет содержать только один документ на каждые 15 минут. Тогда в этой коллекции ваш запрос будет тривиальным: просто получите столько документов / кварталов, сколько вам нужно.