2016-09-19 31 views
0

我來自嚴格的SQL背景。在DynamoDB中按日期對項目排序

現在遷移到DynamoDB,我有一個完整的,我想按日期排序的項目表。

這是我如何做到這一點:

  • 我成立了一個二級指標類別,日期指數。類別是哈希,日期是範圍。我正在排序的所有項目將具有相同的類別值。

  • 這個問題我現在已經是許多項目具有相同的日期。此次要索引自動刪除具有相同類別日期的項目,並且只保留一個。這不是我想要的行爲。

什麼是正確的方法來做到這一點?

我還希望指針就如何考慮這些使用情況時,結構DynamoDB表和索引一個良好的閱讀。

回答

0

有多少項目有相同的日期,你呢?

,你可以隨時添加到你的約會一個額外的後綴(如隨機數的0範圍 - X - 如果你的日期是int - EPOC時間) - 這也將確保您的排序。 (只有當你的範圍是字符串,而你總是添加相同的位數)

例如:

原始項目=(散列,1234567)

轉換項目=(哈希, '1234567010' )

原始ITEM2 =(散列,1234567)

轉換ITEM2 =(散列, '1234567900')

可以使用 '覆蓋' PARAM(和s將其設置爲false)插入項目時。如果發生錯誤,您可以在範圍鍵中添加一個額外的數字。

,你可以在這裏找到很好的指導方針: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GuidelinesForTables.html

+0

這實際上就是我想爲「解決」。 我希望有一個「直接」的方法來處理這個問題。 此外,有一個更好的做法來存儲日期爲ISO-6801字符串或時期號,以允許更多的靈活性? –

+0

在這種情況下,我認爲作爲時代號碼轉換爲字符串 –