【发布时间】:2019-02-27 17:41:34
【问题描述】:
Cloud Bigtable docs on schema design for time series说:
在绝大多数情况下,时间序列查询是在给定时间段内访问给定数据集。因此,请确保给定时间段内的所有数据都存储在连续的行中,除非这样做会导致热点。
另外,here's what they recommend to avoid hotspotting:
如果您要存储手机的电池状态,并且您的行键由单词“BATTERY”加上时间戳组成,那么行键将始终按顺序增加。由于 Cloud Bigtable 将相邻的行键存储在同一个服务器节点上,因此所有写入将仅集中在一个节点上,直到该节点已满,此时写入将移至集群中的下一个节点。
建议现场推广:
将列数据中的字段移动到行键中以使写入不连续。
例如:
BATTERY#20150301124501001 --> BATTERY#Corrie#20150301124501001
问题:
- 字段提升可以解决热点问题。不过,这不会让按时间范围查询有点困难吗?
- 另一方面,如果您只想通过 TIMESTAMP 查询范围,是否可以避免热点?不要这么认为,对吧?
谢谢!
【问题讨论】:
标签: bigtable google-cloud-bigtable