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 |
我即将为我的类似 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 |