在DynamoDB中存储域名

时间:2015-06-27 19:00:35

标签: amazon-web-services amazon-dynamodb nosql

如果我想使用庞大的域名列表填充DynamoDB表,则每个域名(example.com),主机名(示例)和顶级域(com)都有两个部分。

我正在尝试使用散列和范围主键确定最佳存储方式。根据文档,您希望分散密钥的哈希部分,因此我认为应该使用完整的域名(example.com),范围可以是域的更新日期。这将允许我查询在特定日期之后更新的所有域。这听起来像是一个好的设计吗?

  

要充分利用DynamoDB吞吐量,请创建表格   hash key元素有很多不同的值,值也是   尽可能随机地要求相当统一。

1 个答案:

答案 0 :(得分:0)

使用域名作为Hash-Key和更新日期作为Range Key似乎可以很好地分配哈希键。但是,如果您的域名每秒更新超过500次,我会评估其他策略,例如将udpates写入具有UUID作为哈希键的表,在更新表上启用DynamoDB流并将该流与KCL一起使用+ Streams Adapter或Lambda用于更新存储系统当前状态的缓存。最后,查询操作一次只涉及一个特定的哈希键,但是,如果你使用日期时间字符串作为范围键,你肯定可以及时向前和向后分页,从最近或最近的更新开始特定的域名。