2014-07-01 60 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和圖像指針鍵值對。