ADL*_*ADL 5 python mysql google-cloud-datastore
我们正在从生产数据库迁移一些数据,并希望将大部分数据存档在Cloud Datastore中.
最终我们会将所有数据移到那里,但最初将重点放在存档数据上作为测试.
我们选择的语言是Python,并且能够逐行将数据从mysql传输到数据存储区.
我们有大约1.2亿行要传输,一次一行的方法需要很长时间.
有没有人找到一些关于如何使用python将数据批量插入云数据存储区的文档或示例?
任何评论,建议表示赞赏,谢谢你提前.
我今天所知道的云数据存储没有"批量加载"功能,所以如果您期望"上传包含所有数据的文件并且它将出现在数据存储中",我认为您不会找到任何东西.
您总是可以使用并行化工作的本地队列编写快速脚本.
基本要点是:
数据存储是可大规模并行化的,因此如果您可以编写一个每秒发送数千个写入的脚本,它应该可以正常工作.此外,这里的大瓶颈将是网络IO(在发送请求之后,您必须等待一段时间才能获得响应),因此许多线程应该获得相当不错的整体写入速率.但是,您应该确保在这些线程中正确地分割工作.
现在,您应该调查Cloud Datastore是否适合您的数据和持久性/可用性需求.如果您正在获取120米行并将其加载到Cloud Datastore中以进行键值样式查询(也就是说,您有一个key
非索引value
属性,这只是JSON数据),那么这可能有意义,但加载数据会花费您〜在这种情况下70美元(120米*0.06美元/ 100克).
如果您有属性(默认情况下将被编入索引),则此成本会大幅上升.
操作成本为每100k 0.06美元,但单个"写入"可能包含几个"操作".例如,假设您在一个包含5列的表中有120米的行(相当于一个具有5个属性的Kind).
单个"新实体写入"相当于:
因此,加载此数据的实际成本是:
120m实体*12 ops/entity*($ 0.06/100k ops)= $ 864.00