1

我正在使用 Python 和 Bigtable 开发物联网数据管道,并且写入速度非常慢。

我已经尝试过 Google 提供的两个 Python 客户端库。本机 API 使用提交方法实现 Row 类。通过从我的本地开发机器以这种方式迭代提交行,具有 3 个节点的生产实例上的写入性能大约为每秒 15 次写入 / 70 KB ——当然,由于我的测试数据方式,写入命中单个节点是批处理的,并且正在从本地网络上传数据......但是谷歌表示每个节点每秒写入 10,000 次,而我的机器的上传速度是 30 MB/s,所以显然差距在其他地方。

我随后满怀希望地尝试了happybase API,因为该接口提供了一个用于插入数据的批处理类。然而,在令人失望地达到相同的性能限制之后,我意识到 happybase API 只不过是原生 API 的包装器,而 Batch 类只是以与我最初的实现非常相似的方式迭代地提交行。

我错过了什么?

4

1 回答 1

2

我知道我迟到了这个问题,但是对于遇到这个问题的其他人来说,python 的谷歌云库现在允许使用mutations_batcher. 链接到文档

您可以使用batcher.mutate_rowsand thenbatcher.flush在一次网络调用中发送要更新的所有行,从而避免迭代行提交。

于 2019-01-06T07:23:48.017 回答