AWS DynamoDB Max项目大小



我正在尝试使用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
}
]
}

消息日志中的条目数很可能达到数千条。

根据文档和"item"可设置的最大大小为400kB,这严重限制了可存储的日志元素的最大数量。

在不使用更传统的sql方法(实际上不需要)的情况下,如何正确地存储这些数据量

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

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

在不知道任何关于数据读/写模式的信息的情况下,一个更好的布局是让每个日志条目都是DB中的一个项目:

  1. 用户名可以是分区键
  2. 日志日期可以作为排序键。
  3. (可选)如果需要按消息id检索,可以创建二级索引。(或者日志日期相反)

使用上面的结构,您可以简单地附加日志条目&假设您已经为您的用例适当地设置了排序键/索引,那么就可以有效地检索它们。重点了解排序键和二级索引如何优化查找DB中的条目。您希望避免扫描整个数据库来寻找您的项目。更多信息请参见Amazon DynamoDB的核心组件。

相关内容

最新更新