2014-07-01 59 views
0

我试图从Dynamo中的反编译文件中存储信息。如何在DynamoDb中正确嵌套表

我有所有的文件存储在S3中,但我想改变一些。

我有一个对象id与属性,如日期等,我知道如何创建一个表在发电机。我的问题是每个对象还包含图像,文本文件和原始文件。我想在文件的属性中有原始文件的s3的关键字:

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

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

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

回答

0

如果你停留在每件64Kb的Dynamodb限制之间。

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

DynamoDB具有字符串类型(用于文件名,日期等)以及属性列表(用于文本文件,图像)的StringSet(SS)。

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

+0

所以我不能说这个表列直接引用另一个表吗? – Tai

+0

否Dynamodb –

+0

中没有“加入”,因此没有解决方法? – Tai

0

从你所描述的,我认为你只需要用hashkey创建一个表。 haskey应该是对象ID。并且您将拥有诸如“日期”,“图像指针”,“文本指针”等列。

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

无模式也意味着您可以动态创建新列。假设您只有“日期”列的表中有一行。现在你想添加“图像指针”列。你只需要调用UpdateItem并给它hashkey和图像指针键值对。