![]() |
1
2
你的建议会奏效的。
但是,如果要提高设计的效率,可以使用的分区键
甚至可以对分区键使用一个常量值,并且
无论哪种方式,您的数据都足够小,您可能只需要选择最容易开发和维护的实现。 |
![]() |
2
0
从复制我的答案 this post nosqldb的几个概念
从给定的问题和dyanamodb模式来看,最明显的是
有钥匙
但这将违反这两个概念。我们总是在一个pk上写作,并且总是从相同的pk上阅读。 对于这个特殊的问题, 我们的pk应该足够随机(因此 hot keys )具有足够的确定性(以便我们查询) 在设计密钥时,我们必须对应用程序做一些假设。假设我们决定每小时更新一次。因此,可以将2018年1月7日-17日作为关键。其中17表示17小时。这个键是确定性的,但它不够随机。而且,1月7日的每次更新或读取都将进入同一分区。为了使密钥随机,我们可以使用类似MD5的散列算法计算它的散列值。让我们假设在获取hash之后,我们的密钥变为1sdc23sjdnsd。如果您正在查看表数据,这将没有任何意义。但是,如果你想知道2018-17年1月7日的事件计数,你只需散列时间,然后用hashkey从dynamodb获取数据。 如果你想知道2018年1月7日的所有事件,你可以重复24次获取并汇总计数。 现在这种模式会有一些问题
经验法则是 当查询模式定义良好时,使用nosql 并出于性能原因存储结果。如果您试图对NoSQL进行连接或聚合类型的查询,那么它将根据您的技术选择强制适合您的用例。 你也可以看看 aws recommendation 存储时间序列数据。 |
![]() |
R0bert2 · Ansible-使用with_项创建列表 2 年前 |
![]() |
renzCNFT · 与s3相比,workdocs有什么优势 2 年前 |
![]() |
Eva · Github与AWS codecommit镜像和同步的操作 2 年前 |
![]() |
Hasham · 如何将多个本地文件上载到s3中的一个文件 2 年前 |
![]() |
sebas flores · S3 URL-使用python下载 2 年前 |