我正在使用Python和Bigtable开发一个IoT数据管道,写入速度非常慢。
我已经尝试过Google提供的两个Python客户端库。本机API使用commit方法实现Row类。通过以这种方式从我的本地开发机器迭代地提交行,具有3个节点的生产实例上的写入性能大约是15次写入/每秒70 KB - 由于我的测试数据的方式,写入会触及单个节点是批处理的,数据是从本地网络上传的......但Google表示每个节点每秒写入10,000次,而我机器的上传速度为30 MB / s,显然差距就在其他地方。
我随后尝试了happybase API,因为该接口提供了一个用于插入数据的Batch类。然而,在令人失望地达到相同的性能限制后,我意识到happybase API只不过是本机API的包装器,而Batch类只是以与原始实现非常相同的方式迭代地提交行。
我错过了什么?
答案 0 :(得分:1)
我知道我对这个问题迟到了,但是对于遇到此问题的其他任何人,适用于python的Google云库现在都允许使用mutations_batcher
进行批量写入。 Link to the documentation。
您可以使用batcher.mutate_rows
,然后使用batcher.flush
发送所有要在一次网络调用中进行更新的行,从而避免迭代行的提交。