AWS DynamoDB table 用于按日期顺序检索视频/照片内容

AWS DynamoDB table for retrieval of video / photo content in date order

我即将为我的类似 Instagram 的视频/照片共享应用程序创建一个 DynamoDB table。此 table 的目的是按日期顺序提供所有用户帖子的网格视图。我们都知道用例:)

显然,GUID(用于视频或照片)将是我的主键。我将有一个看起来像这样的结构(部分)JSON 用于初始加载 table:

{
    "VideoCatalog": [
        {
            "PutRequest": {
                "Item": {
                    "Guid": "67459e53-21bb-4a7d-8f7a-18e4cd165c44",
                    "Timestamp": "20160314",
                    "ThumbnailName": "20160314-TheWind_tumb.0000000.jpg",
                    "Title": "The Wind"
                }
            }
        },
        ...
}

可能不重要,但 GUID 对应于一个 S3 文件夹,其中包含各种视频 "assets",包括用于自适应多比特率视频点播流的各种格式。我将使用 AWS JavaScript SDK 访问 table 等

我不确定是否要将 timestamp 指定为排序键以帮助按日期顺序返回结果(最终通过延迟加载/分页),最近的在前。

在我对排序键(例如,here)所做的阅读中,我不确定这是否是它们的预期功能。

正如 DynamoDB 指南所说:

In a table that has a partition key and a sort key, it's possible for two items to have the same partition key value.

这绝对不是我的数据的用例。

关于从 DynamoDB 按日期顺序检索项目的任何建议 table?

如果 guid 是您的主键,则将日期作为辅助键没有意义,因为根据我对您的用例的理解,只能有一个资源 par guid。

然而,这就是我设计解决您的用例的模式的方式。

| userId (PK) |  Timestamp (sortKey) | resourceid         |
| 123         |   12343212           |  guid1             |
| 123         |   12343215           |  guid2             |