我们正在从生产数据库中迁移一些数据,并希望将大多数数据存档在Cloud Datastore中。
最终,我们将所有数据移到那里,但是最初将重点放在作为测试的存档数据上。
我们选择的语言是Python,并且能够将数据从mysql逐行传输到数据存储区。
我们大约有1.2亿行要传输,而一次仅传输一行将花费很长时间。
有没有人找到一些有关如何使用python将数据批量插入云数据存储中的文档或示例?
任何意见,建议表示赞赏,谢谢您的先进。
最佳答案
我今天知道的Cloud Datastore没有“批量加载”功能,因此,如果您期望“将所有数据上传到文件并显示在Datastore中”之类的东西,我认为您不会会找到任何东西。
您总是可以使用并行化工作的本地队列编写快速脚本。
基本要点是:
数据存储区可大规模并行化,因此,如果您可以编写一个每秒发送数千次写入操作的脚本,它应该可以正常工作。此外,这里的最大瓶颈将是网络IO(发送请求后,您必须稍等片刻才能获得响应),因此许多线程应该获得相当不错的总体写入率。但是,要确保将工作适本地分配到这些线程中,这取决于您。
就是说,您现在应该调查Cloud Datastore是否适合您的数据以及持久性/可用性需求。如果您要花费1.2亿行并将其加载到Cloud Datastore中以进行键值样式查询(又名,您有一个
key
和一个未索引的value
属性,它只是JSON数据),那么这可能是有道理的,但是加载数据将花费很多您在这种情况下约为$ 70(1.2亿* $ 0.06/10万)。如果您具有属性(默认情况下会被索引),则此成本将大幅增加。
运算成本为每100k $ 0.06,但是一个“写入”可能包含多个“运算”。例如,假设您有5列的表中有1.2亿行(相当于一个具有5个属性的Kind)。
单个“新实体写入”等效于:
因此,加载此数据的实际成本为:
1.2亿个实体* 12个操作/实体*(0.06万/10万个操作)= 864.00美元
关于python - 是否可以使用Google Cloud Datastore批量插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32316088/