2013-12-19 22 views
1

我是DynamoDB的新手 - 我已經有一個插入數據的應用程序,但我在提取數據時遇到困難。如何設計DynamoDB表,以方便按時間範圍進行搜索,並通過唯一ID進行刪除

要求

  1. 必須有每個客戶獨特的表
  2. 將文檔插入表中(每個文檔都有一個唯一的ID和時間戳)的文件
  3. 獲取X號按時間戳排序
  4. 根據唯一ID刪除單個文檔

到目前爲止,我已經創建了一個帶有組合鍵(S:id,N:timestamp)的表。然而,當我來查詢它時,我意識到由於我的ID是唯一的,因爲我無法在ID上進行通配符搜索,所以我將無法提取一系列項目...

因此,如何我應該設計我的桌子來滿足這種情況嗎?

編輯:這是我在想什麼:

主要指數將複合材料:(S:CUSTOMER_ID,N:時間戳),其中客戶ID將是一個表中的相同。這將使我能夠根據時間範圍提取數據。

二級索引將是散列(s:unique_doc_id),藉此我將能夠使用此索引刪除項目。

這聽起來像是正確的解決方案嗎?先謝謝你。

回答

1

你能滿足這樣的要求:

你的主鍵將是H:CUSTOMER_ID和r:UNIQUE_ID。這可以確保表中的所有元素具有不同的鍵。

你也將有一個時間戳的屬性,並將有一個本地二級索引。

您將使用LSI做要求3和batchWrite API調用做批量刪除要求4

此解決方案不要求(1) - 所有的客戶可以留在同一個表(頭 - 每個賬戶有256個表格前有限制)

+0

這實際上就是我最終在索引方面做的事情!謝謝,很高興看到我正朝着正確的方向思考! –

相關問題