是否有办法将大量数据输入Firebase Firestore数据库

2024-05-16 20:35:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将大量数据(1300万行)输入Firebase Firestore,但这需要花费很长时间才能完成

目前,我正在使用python一行一行地插入数据,我尝试使用multi-treading,但速度仍然很慢,效率也不高(我必须保持与Internet的连接)

那么,是否有其他方法将文件插入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)

非常感谢


Tags: 数据方法adminrandomalifnamelistfirebase
1条回答
网友
1楼 · 发布于 2024-05-16 20:35:13

Firestore不提供任何“批量更新”文档的方法。它们必须单独添加。有一种批量写入的工具,但每批仅限于500个文档,这不太可能大大加快您的进程

如果您想优化文档的添加速度,我建议您阅读documentation on best practices for read and write operationsdesigning for scale。然而,从各方面考虑,确实没有“快速”的方法将1300万个文档放入Firestore。您将编写代码来分别添加每一个。Firestore未针对快速写入进行优化。它针对快速阅读进行了优化

相关问题 更多 >