如何在DynamoDb中正确嵌套表

时间:2014-07-01 22:25:44

标签: python database amazon-s3 amazon-dynamodb boto

我正在尝试在Dynamo中存储反编译文件中的信息。

我已将所有文件存储在s3中,但我想更改其中一些。

我有一个带有日期等属性的对象id,我知道如何在dynamo中创建一个表。我的问题是每个对象还包含图像,文本文件和原始文件。我想在文件的属性中为原始文件提供s3的密钥:

Ex:FileX,date,originalfileLoc等,图像指针,文本指针。

我在线查看,但我很困惑如何进行嵌套。有谁知道任何好的例子?还有另外一种方法吗?我假设我创建了一个图像和一个文本表。每个都有id和所有文件的s3键。有关如何创建链接本身的任何示例代码?

我正在使用python boto btw来做到这一点。

2 个答案:

答案 0 :(得分:0)

如果你保持在Dynamodb每件64Kb的限制之间。

每个文件可以有一个项目(行)。

DynamoDB具有String类型(用于文件名,日期等),还有用于属性列表的StringSet(SS)(用于文本文件,图像)。

根据您的编写,我假设您只会将指针(键)保存到S3中的二进制数据。 你也可以在DynamoDB中保存二进制数据和二进制集,但我相信你会达到极限并且在吞吐量方面有一个昂贵的解决方案。

答案 1 :(得分:0)

根据您的描述,我认为您只需要创建一个带有hashkey的表。 haskey应该是对象id。您将拥有诸如" date","图像指针","文本指针"等等。

DynamoDB是无模式的,因此您不需要显式创建列。当你调用getItem时,服务器将返回一个字典,列名为key和值。

无模式也意味着您可以动态创建新列。假设你的表中只有一行只有" date"柱。现在你要添加"图像指针"柱。你只需要调用UpdateItem并为其提供hashkey和image-pointer键值对。