我正在使用Google BigTable根据以下限制条件存储事件日志数据:
显然,我想在读或写时避免做额外的步骤,所以我想在使用SHA1加密用户名之前将它们作为BigTable中的键添加。因此,BigTable中的所有键现在都将格式化为:
cf23df2207d99a74fbe169e3eba035e633b65d94_2018_01_30_15090001
我们知道SHA1是正态分布式的,因此可以安全地假设我的所有记录将在节点间均匀分布,同时确保所有用户名都在一起?这实际上会阻止热点吗?我错过了这种方法的边缘情况吗?
答案 0 :(得分:1)
假设用户ID分布均匀(即没有用户每秒的操作次数超过10K),这种方法应该没问题。
仅供参考,Cloud Bigtable以每秒行数衡量操作,您希望在确定节点数时考虑峰值吞吐量。每个节点每秒可支持10,000次简单读取或写入。我们最小的生产配置是3个节点,每秒最多可支持30,000行(如果最多连续使用,则每天26亿行)。