Ugh. Cevap gerçekten çok fazla ArcSDE geçmişini gerektiren karmaşık bir cevap, bu yüzden mümkün olduğunca kısa olmaya çalışacağım.
Not ESRI sitesinde bulabileceğiniz süper harika sürüm beyaz kağıdındaki bazı diyagramlara başvuracağım . Versiyonlama ile uğraşıyorsanız, dikkatlice okumanızı tavsiye ederim.
Daha sonra, bir durum (yani durum ağacındaki bir düğüm) ile adlandırılmış bir versiyon (yani bir duruma işaret eden bir etiket ) arasındaki ilişkinin ne olduğunu anlamanız gerekir .
Tipik bir veritabanı aşağıdaki durum diyagramına benzeyebilir:
Burada, veritabanında dört sürüm vardır (Sürüm A, Sürüm B, Sürüm C ve DEFAULT). Ama belki de kendimden biraz daha öndeyim. Bir devletin ne olduğu ile başlayalım .
Bir durumu bir "işlem" olarak düşünebilirsiniz - bir ya da daha çok - tabloda birkaç düzenleme içeren mantıksal bir birim . İki içerebilir geçme "FeatureClass A", bir silme "Özellik Sınıf B" ve gelen bir değiştirme "Özellik sınıfı X" için (özellikle bir silme +, bir ek). Hepsi bir arada gruplandırılmış.
Durum kimliği 0'da başlayan küçük, basit bir ArcSDE durum şemasına bakalım:
0 durumundan başlarsanız ve bir düzenleme işleminde bir veya daha fazla tabloda düzenleme yaparsanız, bir alt durum 1 oluşturacak ve bunu geçerli etkin durum kimliği yapacaksınız . Ardından bir başka düzenleme grubu alt durum 2'yi oluşturur. Geri almak istiyorsanız, durum kimliğini herhangi bir şekilde değiştirmeniz gerekmez - yapmanız gereken tek şey geçerli etkin durum kimliğini 1 veya 0 olarak değiştirmektir. ne kadar geriye gitmek istersin). Bir yineleme tam tersidir - yalnızca geçerli aktif durum kimliğini ileriye doğru hareket ettirin - istediğiniz kadar ileriye doğru taşıyın.
ArcSDE sürümlerinde geri al / yinele bu şekilde çalışır.
Tamam, devam et. Bir düzenlemeyi kalıcı yapmak istediğinizi (örneğin kaydetmek istediğiniz) söyleyin. Yapmanız gereken ne? Şey, tasarruf sadece sürüm etiketini alıp belirli bir duruma ilerletmektir. Bunu damgalamak ve "A Sürümünün neye benzemesi gerektiği" demesi gibi. Böylece, ilk şemaya geri bakarsanız, bunun dört adlandırılmış versiyonunun olduğunu göreceksiniz .
- Sürüm B devlet kimliğine işaret ediyor 1
- Sürüm A, 3 kimliğine işaret ediyor
- C sürümü, 5 kimliğine işaret ediyor
"SDE.DEFAULT" sürümü 4 numaralı kimliği gösteriyor
Lütfen, bu şemanın, halkın inancına rağmen, sahip oldukları mantıksal ebeveyn-çocuk ilişkisi hakkında hiçbir şey söylemediğini unutmayın . İlk diyagram için mantıksal ebeveyn-çocuk ilişkisi şöyle görünebilir:
Bu ArcMap / ArcCatalog'da gördüğünüz ebeveyn-çocuk ilişkisidir. Amacı, hangi sürümlerle uzlaşabileceğinizi kısıtlamak . Bu noktada (haklı olarak) kendinize soruyorsunuz, neden cehenneme ihtiyacım var? Cevap, iş akışlarının versiyonlanmasında yatıyor . Görünüşe göre, insanlar oldukça uzun zamandır versiyon kullanıyorlardı ve bunları yapılandırmanın bazı tercih edilen yolları var, ancak bugün sorunuzu yanıtlamak istediğimden bu gün başka bir konu. :)
Hareketli...
Tamam, bu adlandırılmış sürümler başka ne yapar? Sıkıştırma denilen bu işlemin nasıl davrandığını etkiler .
Sıkıştırma, gerekli olmayabilecek ara durumları kapmak ve gereksiz olanları kaldırmak ve bunları birleştirmekle ilgilidir. ArcSDE sıkıştırma işlemini ArcCatalog aracılığıyla tetikleyebilir, her birini bir süre için yapan bir servis ayarlayabilir ve bazı ArcMap düzenleme işlemleri mini sıkıştırma işlemlerini tetikler (sadece kullanılan küçük dallar için).
Soldaki diyagram sıkıştırılmadan önce durum ağacını ve sağdaki sıkıştırılmadan hemen sonraki durumu gösterir:
Anlamak için önemli bir kavram (nihayet sorunuzu cevapladıktan sonra size atıfta bulunacağım), her bir devletin, üzerinde işaretli etiketleri (örn. Sürümleri) bulunan durumlar haricinde, sıkıştırılacak potansiyel bir aday olduğu anlamına gelir .
Sıkıştırmadan önce, gereksiz bazı durumlar olduğunu görebilirsiniz. Aslında, [3,4,5] şubenin tamamı kaldırıldı. 5'te adlandırılmış bir sürüm olsaydı, sonuç çok farklı olurdu.
Sıkıştırma işlemleri, artık gerek duymadığınız kayıtları kaldırarak veritabanınızda yer kazanmak için var.
Tamam, devam et.
Anlamanız gereken son kavram, uzlaştırmaktır - ki bu iki dalı etkin bir şekilde birleştiriyor.
Öyleyse ilk diyagramımıza geri dönelim. Sürüm A'yı SDE.DEFAULT ile uzlaştırmak istediğinizi söyleyin.
Tekrar özetleyelim: çeşitli durum kimliklerini işaret eden dört adlandırılmış sürüm. Bu yüzden yapmamız gereken ilk şey, hedef versiyonun altında bir çocuk devleti oluşturmaktır, bu yüzden 4 numaralı devletin altında bir çocuk devleti yaratırız, örneğimizde, bu durum kimliği 20 olarak adlandırıyorum.
Bir sonraki adım, her iki sürüm arasındaki farkları hesaplamaktır (detaylar bu gönderi için çok uzun, ama size fark imleçleriyle yapıldığını söyleyebilirim ) ve daha sonra bu farkları bu yeni durum kimliği 20'ye (mavi çizgi) uygulayarak söyleyebilirim .
Daha fazla düzenleme yapmaya karar verdiğinizi veya çakışmalar bulduğunuzu ve bir sürümden veya diğerinden satır seçtiğinizi söyleyin. Önemli değil. Bunlar sadece yeni düzenlemelerdir ve alt birleştirdiğiniz dalın altında alt durum belirtildiği gibi bir düzenleme işlemi içinde yapılır. Bu örnekte, mutabakattan sonra iki ardışık düzenleme grubu daha yaptım.
Güzel.
Öyleyse şimdi sürümü " posta " hazır olduğunuzu söyleyin . Bu ne anlama geliyor? Bu sadece etiketleri kapmak ve aynı durum kimliğine işaret ediyor. Burada, Sürüm A’yı SDE.DEFAULT’a göndereceğim. Göründüğü gibi:
Tadaaa! Bu yüzden şimdi A ve SDE.DEFAULT sürümleri aynı durum kimliğine işaret ediyorlar ve aynı görünüyorlar.
Tamam, şimdi nihayet sorunuza cevap verebilirim.
Bir yazıyı geri alabilir misin? ArcGIS belgeleri size hayır diyecek - onunla uğraşma. Yapmayın, çünkü bu mantığı bozacaksınız ve ne yaptığınızı bilmiyorsanız verilerinizi bozabilirsiniz.
Fakat gerçekte, tek gereken ArcSDE Sürüm tablolarından birinin ( VERSIONS tablosu) bir güncellemesini yapmak ve etiketin girişini değiştirmek (aka sürüm adıyla). Örneğimizde, id 21 durumunu belirtin ve bu düzenleme işleminin tamamını geri aldınız. 3 olarak ayarlayın ve sadece tüm uzlaşmayı düzenlediniz. 5 olarak ayarlayın ve şimdi tamamen farklı bir yerdesiniz. Çatışma olup olmadığının önemi yoktur.
Tabii ki, bu bir sıkıştırma olmadığını varsayar. Sıkıştırmanın, SDE tablosunu güncellerken aynı anda gerçekleştiği durumu düşünelim. Unutmayın, siz - ya da başkası - siz gönderdikten sonra bir sıkıştırma uygularsa, ağaç böyle görünür:
Kompresyondan sonra uzlaştırmayı geri alabilir misiniz? Eh, bu durumda, hayır . Sıkıştırma işlemi dalın tamamını havaya uçurdu, bu nedenle geri alamazsınız; bu veriler kaldırılmıştır. Bu dalda başka bir sürüm daha olsaydı, o zaman sıkıştırma o dalı imha edemezdi. Umarım bu şimdi anlamlıdır.
Peki bunu yapmalısın? Size bağlı olarak, ne yaptığınızı bilmiyorsanız, bir sıkıştırmadan sonra verileri kolayca kaybedebilirsiniz.