我有一个表格,用于存储产品项目信息。行键的格式为业务单位UUID +产品ID +产品序列号。每个行键组件都具有固定的字节长度。
对表的写入将以突发(可能是100K的记录)发生,并且具有常量BU UUID,但是产品ID,序列号或两者或多或少随机变化。
从表中读取的内容将是一次一行(无扫描),随机键组件。
我的问题是,在写入突发期间BU ID是否会被修复导致特定节点和/或平板电脑的热点?我的理解是我应该没事,因为我的整体行键值不是单调增加,但我想确定。
答案 0 :(得分:0)
正如所罗门所指出的,即使更改了按键,您也可能会观察到热点。这将取决于您拥有的节点总数,写入量和行的大小。
Bigtable将尝试动态地重新平衡,以便密钥空间在其服务器之间平均分配,但是,如果应用时间序列模式设计文档中描述的盐化技术,则可能会看到更好的结果: https://cloud.google.com/bigtable/docs/schema-design-time-series#ensure_that_your_row_key_avoids_hotspotting
通常,我们建议您尝试一下并尝试进行尽可能的尝试。您可以生成负载,然后使用Cloud Key Visualizer(https://cloud.google.com/bigtable/docs/keyvis-overview)来检查是否遇到热点,只要您有足够的数据来执行分析(https://cloud.google.com/bigtable/docs/keyvis-getting-started#viewing-scan)。
您可能还会发现在Google Cloud Next 2018上进行的这次演讲很有用: https://www.youtube.com/watch?v=3QHGhnHx5HQ
它描述了在Cloud Key Visualizer的帮助下进行迭代模式设计的方法。