2014-06-17 27 views
5

Şu anda, DynamoDB'de sürümleri kullandığımda, sürüm numarasını değiştirdiğimi, ancak yeni girdinin eski girişi değiştireceğini görüyorum; yani:DynamoDB'de önceki kayıtla değiştirmeden sürümleri nasıl uygulayabilirim?

eski

{ object:one, name:"hey", version:1} 

yeni

{ object:one, name:"ho", version:2} 

İstediğim db İKİ girdileri sahip olmaktır; yani:

eski

{ object:one, name:"hey", version:1 } 

yeni

{ object:one, name:"hey", version:1} 
{ object:one, name:"ho", version:2} 

Herhangi yolu Bunu gerçekleştirmek için?

cevap

5

DynamoDB hizmetinin şu anda satır sürümlerini yerel olarak desteklemediğini sanmıyorum. Eğer versiyonlama işlevselliğini istiyorsanız, yanınızda yapmanız gerekecek.

DynamoDB'de satır, birincil anahtarı tarafından benzersiz şekilde tanımlanır. Birincil anahtar, yalnızca HashKey veya HashKey + RangeKey olabilir. Aynı satırı farklı sürümlerle ayırt etmek isterseniz, birincil anahtarınızda bir yere sürüm numarasını eklemeniz gerekir. Örneğin, bir satırın tüm eski sürümleri için sürüm numarasını Hashtaginizin sonuna ekleyebilirsiniz. En son sürüme sahip satır, orijinal hashkey'i kullanacaktır.

Hash Attr Version 
hey  a2  2 
hey_v1 a1  1 

güncelleme sürüm 3'e satır sonra tablo aşağıdaki gibi görünmelidir: istemci tarafında sürüm yapmak

Hash Attr Version 
hey  a3  3 
hey_v1 a1  1 
hey_v2 a2  2 

her zaman mükemmel değildir. örneğin, yukarıdaki yaklaşım için, bir tarama yaparsanız hey_V1 ve hey_v2'yi de alacaksınız. Bu sizin için işe yarayıp yaramadıysa lütfen bana bildirin. Eğer istemci tarafında sürüm yapmak için daha iyi bir yol varsa lütfen buraya da gönderin.

İlgili konular