【问题标题】:Storing Domain Names in DynamoDB在 DynamoDB 中存储域名
【发布时间】:2015-06-27 19:00:35
【问题描述】:

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

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

要充分利用 DynamoDB 吞吐量,请创建表,其中 hash key 元素有大量不同的值,值是 要求相当一致,尽可能随机。

【问题讨论】:

  • 一如既往地处理 NoSQL 问题。最好是您将应用哪些查询。读写比等
  • 每天写入一次更新,读取是零星的和随机的。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 2019-12-20
    • 2013-08-15
    • 2019-07-08
    • 2018-08-12
    • 1970-01-01
    相关资源
    最近更新 更多