【发布时间】:2020-04-20 16:37:35
【问题描述】:
我在 Python 3.7 中有一个云函数,可以将小文档写入/更新到 Firestore。每个文档都有一个 user_id 作为 Document_id,还有两个字段:一个时间戳和一个包含三个 key-value 对象的 map(字典),它们都非常小。
这是我用来编写/更新 Firestore 的代码:
doc_ref = db.collection(u'my_collection').document(user['user_id'])
date_last_seen=datetime.combine(date_last_seen, datetime.min.time())
doc_ref.set({u'map_field': map_value, u'date_last_seen': date_last_seen})
我的目标是每天调用一次此函数,并写入/更新约 500K 文档。我尝试了以下测试,每个测试都包含执行时间:
测试 A:将输出处理为 1000 个文档。不要写入/更新 Firestore -> ~ 2 秒
测试 B:将输出处理为 1000 个文档。写入/更新 Firestore -> ~ 1 分 3 秒
Test C:将输出处理为 5000 个文档。不要写入/更新 Firestore -> ~ 3 秒
Test D:将输出处理为 5000 个文档。写入/更新 Firestore -> ~ 3 分 12 秒
我的结论是:编写/更新 Firestore 占用了我 99% 以上的计算时间。
问题:如何高效地每天编写/更新约 50 万份文档?
【问题讨论】:
标签: firebase google-cloud-firestore google-cloud-functions