我正在将数据加载到BigTable集群(当前为开发人员实例)中。我正在使用c ++客户端放置数据,并且看到两种不同的加载模式:
我希望至少在网络使用方面,#2会更有效率,但是我不知道BigTable方面是否还有其他优化可以提高性能(例如,更好的压缩,更少的CPU / IO)压力)与选项1相比。
绝对的问题是:是否值得为BigTable客户端添加复杂性以执行批量突变,还是我应该立即触发每个突变并忘记其他任何客户端优化?
答案 0 :(得分:2)
您指出,使用BulkApply可以节省网络。在客户端方面,还可以节省CPU,减少请求/响应工作,并且在Bigtable serverm中,将批量应用到同一行或连续行范围的突变。
这些节省的费用在很大程度上取决于要插入的数据的分布,并且增加的复杂性还取决于应用程序的设计方式。 C ++客户端提供了一个BulkApply方法,该方法应该很容易:
对于插入大量数据,Cloud Bigtable用户发现大量应用是值得的,这是因为节省了节点cpu并增加了插入吞吐量。