开发者社区> 问答> 正文

OTS表格存储产品,如果自增id作为分区键,建议自增id前拼接一个哈希前缀。请问什么原理?哈希算法如何选择?

我的产品里到处是自增ID作为主键,同时也需要作为分区键,OTS产品的最佳实践的帮助里建议:自增id作为分区键拼接一个哈希前缀比较好,会将最近新写入的记录均匀分到各个分区里,单并没有说明原理,让人很费解。产生两个问题:

  1. 分区键哈希的原理简单介绍一下?一直认为自增已经是每个键不一样了,且取模会很均匀了,为啥直接用会不均匀分配,
  2. 哈希前缀具体应该如何哈希,那些哈希算法推荐?

展开
收起
包三哥 2016-06-20 21:19:05 6912 0
1 条回答
写回答
取消 提交回答
  • 表格存储(TableStore)技术负责人,专注结构化数据存储领域技术和解决方案。

    可以使用自增ID,但是前提是每个ID上的访问需要均匀。如果你的表的访问热度都集中在最新创建的ID的话,那就很容易产生热点了。
    哈希算法的话,可以用md5,也可以直接用java的hashcode函数自带的实现。

    关于自增ID,有个典型的例子是时间序列数据,可以参考下这篇文章: https://yq.aliyun.com/articles/54644

    2019-07-17 19:44:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载