【问题标题】:Is there a way to Enter large number of data into Firebase Firestore DataBase有没有办法将大量数据输入 Firebase Firestore 数据库
【发布时间】:2020-05-29 22:20:40
【问题描述】:

我正在尝试将大量数据(1300 万行)输入 Firebase Firestore,但需要很长时间才能完成。

目前,我正在使用python逐行插入数据,我尝试使用multi-treading,但仍然很慢,效率不高(我必须保持连接到互联网)

那么,是否有另一种方法可以将文件插入 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)

非常感谢...

【问题讨论】:

    标签: python firebase google-cloud-firestore


    【解决方案1】:

    Firestore 不提供“批量更新”文档的任何方式。它们必须单独添加。有一个批量写入的工具,但是每批最多 500 个文档,这不太可能大大加快您的处理速度。

    如果你想优化添加文档的速度,我建议阅读documentation on best practices for read and write operationsdesigning for scale。然而,考虑到所有因素,实际上没有“快速”的方法可以将 1300 万份文档放入 Firestore。您将编写代码来单独添加每一个。 Firestore 未针对快速写入进行优化。它针对快速读取进行了优化。

    【讨论】:

    • hmmm,对于我来说,似乎最好检查另一种解决方案而不是使用 firestore(也许带有索引的普通数据库可能会解决问题)。非常感谢道格
    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    相关资源
    最近更新 更多