Есть ли способ ввести большое количество данных в Firebase Firestore DataBase - PullRequest
1 голос
/ 30 мая 2020

Я пытаюсь ввести большое количество данных (13 миллионов строк) в Firebase Firestore, но до sh требуется вечность.

В настоящее время я вставляю данные строка за строкой, используя python, я пытался использовать многопоточность, но это все еще очень медленно и неэффективно (мне нужно оставаться подключенным к Inte rnet)

итак, есть ли другой способ вставить файл в Firebase (более эффективный способ (пакетной) вставки данных)?

Это формат данных

[
{
    '010045006031': {
                        'FName':'Ahmed',
                        'LName':'Aline'
                    }
},
{
    '010045006031': {
                        'FName':'Ali',
                        'LName':'Adel'
                    }
},
{
    '010045006031': {
                        'FName':'Osama',
                        'LName':'Luay'
                    }
}

]

Это код, который я использую

import firebase_admin
from firebase_admin import credentials, firestore



def Insert2DB(I):
     doc_ref = db.collection('DBCoolect').document(I['M'])
     doc_ref.set({"FirstName": I['FName'], "LastName": I['LName']}


cred = credentials.Certificate("ServiceAccountKey.json")

firebase_admin.initialize_app(cred)

db = firestore.client()

List = []
#List are read from File
List.append({'M': random(),'FName':'Ahmed','LName':'Aline'})
List.append({'M': random(),'FName':'Ali','LName':'Adel'})
List.append({'M': random(),'FName':'Osama','LName':'Luay'})


for item in List:
    Insert2DB(item)

Большое спасибо ...

1 Ответ

1 голос
/ 30 мая 2020

Firestore не предлагает никакого способа «массового обновления» документов. Их нужно добавлять индивидуально. Есть возможность пакетной записи, но она ограничена 500 документами в пакете, и это вряд ли сильно ускорит ваш процесс.

Если вы хотите оптимизировать скорость, с которой могут быть добавлены документы , Я предлагаю прочитать документацию по передовым методам проектирования операций чтения и записи и для масштабирования . Тем не менее, учитывая все обстоятельства, на самом деле не существует "быстрого" способа получить 13 миллионов документов в Firestore. Вы будете писать код, чтобы добавлять каждого по отдельности. Firestore не оптимизирован для быстрой записи. Оптимизирован для быстрого чтения.

...