2016-04-01 10 views
0

API 1.4.10 aracılığıyla JsonDocument gibi API 2.0.5 tarafından sağlanan yeni belgelere, couchbase'de kalıcı olan belgeleri taşımak istiyorum. Özel dönüştürücülerin Kova'ya eklenme olasılığının bulunduğunu tespit ettim, bu yüzden belgeleri çözerken bayrakları kontrol edebilirim ve hangi kod dönüştürücünün tam olarak kullanacağına karar verebilirim. Ama bana göre bu oldukça iyi bir çözüm değil. Bunu uygun şekilde yapmanın başka yolları var mı? Teşekkürler.Kanıt tabanındaki belgeleri taşıma için uygun yol (API 1.4.x -> 2.0.x)

Geçiş çok fazla belge olduğu için kullanıcı isteğine bağlı olarak yalnızca çalışma zamanında yapılabilir, hepsini arka planda bir kerede taşıyamayız.

cevap

0

1.x SDK ile oluşturulan belgeleri okumak için özel bir kod dönüştürücü kullanmanız gerekmez. Bunun yerine, eski biçimdeki belgeleri okumak (ve yazmak) için LegacyDocument türünü kullanın. Daha önemlisi, veritabanında çok uzun süre eski ve yeni belgelerle çalışmaya devam etmemelisiniz. Eski biçimden yeni SDK'ya geçişi kolaylaştırmak için LegacyDocument türü sağlanmıştır. Bu durumda en iyi uygulama, belgelerinizi tek bir biçimde okumaya çalışan, daha sonra bunları diğerlerinde okumaya devam eden bir ara sürümün uygulanmasıdır. İlk olarak hangi tür belgeye daha sık erişildiğine bağlı olarak, yeni ya da tam tersi. Ara sürüm dağıtıldıktan sonra, tüm belgeleri eski biçimden yenisine okuyacak ve dönüştürecek bir arka plan görevi çalıştırmalısınız. Bu oldukça basittir: sadece belgeleri LegacyDocument olarak okumayı deneyin ve başarılı olursa belgeyi daha önce aldığınız CAS değerini kullanarak bir JsonDocument olarak saklayın. Belgeyi eski olarak okuyamazsanız, zaten yeni biçimindedir. Görev, veritabanı yükünde büyük bir artışa neden olmayacak kadar daraltılmalıdır. Görev bittikten sonra, geri dönüş kodunu uygulamadan kaldırın ve sadece JsonDocument olarak her şeyi okuyun ve yazın.

Çok fazla belgeye sahip olduğunuzdan söz ediyorsunuz - bu kaç tane? Bu şekilde birden fazla milyarlarca doküman içeren veri kümelerini başarıyla taşıdık. Bu, kuşkusuz, çalıştırmak için birkaç gün sürdü. Bundan daha büyük bir veritabanınız varsa veya çok düşük bir yerleşik orana sahipseniz, tüm belgeleri dönüştürmeyi denemek pratik olmayabilir.

+0

Böylesine ayrıntılı bir cevap için teşekkür ederiz. Şimdi benim için açık. –

İlgili konular