AWS DynamoDB 最大项目大小

乔纳森·史密斯

我正在尝试使用 DynamoDB 创建一个简单的日志记录系统。使用这个简单的表结构:

{
 "userName": "Billy Wotsit",
 "messageLog": [
   {
    "date": "2022-06-08 13:17:03",
    "messageId": "j2659afl32btc0feqtbqrf802th296srbka8tto0",
    "status": 200
   },
   {
    "date": "2022-06-08 16:28:37.464",
    "id": "eb4oqktac8i19got1t70eec4i8rdcman6tve81o0",
    "status": 200
   },
   {
    "date": "2022-06-09 11:54:37.457",
    "id": "m5is9ah4th4kl13d1aetjhjre7go0nun2lecdsg0",
    "status": 200
   }
  ]
}

消息日志中的项目数很容易达到数千个。

根据文档,“项目”的最大大小为 400kB,这严重限制了可以存储的日志元素的最大数量。

在不求助于更传统的 SQL 方法(实际上并不需要)的情况下,存储这么多数据的正确方法是什么?

孝边

有关数据用例的一些信息会有所帮助。我的主要问题是

  1. 您需要多久更新/附加日志到条目?
  2. 您需要如何检索日志?你需要所有这些吗?每个用户都需要它们吗?你会按时间过滤吗?

在不了解有关数据读/写模式的更多信息的情况下,更好的布局是让每个日志条目成为数据库中的一个项目:

  1. 用户名可以是分区键
  2. 日志日期可以是排序键。
  3. (可选)如果您需要按消息 ID 检索,您可以创建二级索引。(反之亦然与日志日期)

使用上述结构,假设您已将排序键/索引设置为适合您的用例,您可以轻松地附加日志条目并有效地检索它们。专注于了解排序键和二级索引如何优化在数据库中查找条目。您希望避免扫描整个数据库来查找您的项目。有关更多信息,请参阅Amazon DynamoDB 的核心组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章