Как выполнить массовую загрузку данных в firebase firestore - PullRequest
0 голосов
/ 02 мая 2018

У меня есть ~ 300 МБ данных (~ 180 тыс. Объектов json), которые обновляются каждые 2-3 дня.

Эти данные разделены на три "коллекции", которые я должен постоянно обновлять.

Я решил пойти по пути Node.JS, но любое решение на языке, который я знаю (Java, Python), будет приветствоваться.

Всякий раз, когда я выполняю пакетный набор с использованием клиента node.JS firebase-admin , он не только потребляет ненормальное количество оперативной памяти (около 4-6 ГБ!), Но также имеет тенденцию аварийно завершать работу с ошибками. которые не имеют четкой (до 4 страницы поиска в Google без осмысленного ответа) причины.

Мой код откровенно прост, вот и он:

var collection = db.collection("items");
var batch = db.batch();

array.forEach(item => {
   var ref = collection.doc(item.id);
   batch.set(ref, item);
});

batch.commit().then((res) => {
    console.log("YAY",res);
});

Я не нашел нигде, если есть ограничение на количество записей в ограниченный промежуток времени (я понимаю, что 50-60 тыс. Записей должны быть простыми с бэкэндом размером с firebase), а также обнаружил, что это может подняться на оперативную память и выделить 4-6 ГБ оперативной памяти.

Я могу подтвердить, что, когда выдается ошибка, или использование оперативной памяти забивает мой ноутбук, что бы ни случилось в первую очередь, у меня все еще остается менее 1-4% ежедневных квот на использование, так что это не проблема.

...