如何解决Bigtable 增加读取行的速度
我正在做一个实验来测试 Bigtable 与使用 Postgres 相比的功能。
我已经建立了一个有 50000 行和 500 列的表格 我正在尝试使用以下代码读取所有这些数据
# Create the Row Keys
row_set = RowSet()
start_key = f"tu7#s777#raw#"
end_key = f"tu7#s777#raw$"
row_set.add_row_range_from_keys(
start_key=start_key.encode('utf-8'),end_key=end_key.encode('utf-8'))
# Read the Rows
rows = table.read_rows(row_set=row_set)
payload = {}
t = time.time()
for idx,row in enumerate(rows):
pass
print(time.time() - t)
输出是查询需要大约 4 到 5 分钟
行的读取速率约为每秒 200-600 行
我想知道,因为 Bigtable 文档说它支持最多“每秒读取 10,000 行”和“扫描 220 MB/s”,有没有办法提高我的读取速度。我通过从 n1 标准 1 机器上的 jupyter 笔记本上的 python 脚本读取数据来运行我的测试。低读取率是因为处理器吗?或者网络吞吐量或其他因素?
解决方法
尽量减少列数。连续 500 个数据可能会超过每行 1KB,而 10k/s 的估计基于 https://cloud.google.com/bigtable/docs/performance。
代替
key1 col1 col2
试试
key1-col1 col1
key1-col2 col2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。