Jeo uzamsal veriler için sürüm kontrol sisteminin uygulanması [kapalı]


28

Burada hemen bir doğru cevaba ihtiyacım olmadığından değil, ancak son zamanlarda coğrafi veriler için "(dağıtılmış) versiyon kontrol sistemleri" kavramını tanıtmak için bazı çabalar gördüm. Bazı örnekler (bildiğim kadarıyla), Norveç GIS Yazılım tedarikçileri ve Norveç Harita Ajansı'nın OpenGeo ( 1 , 2 ve 3 ) 'ün üç beyaz el yazısı ve " Geosynkronisering (geosyncronization)" projesidir. Jeo uzamsal verilerin dağıtık versiyonunu da buldum ? (hangisi GeoGit'ten (OpenGeo tarafından)) ve ArcGIS ModelBuilder modellerine sürüm kontrolü uygulamaktan bahseder ? ArcGIS'te sürüm kontrolü hakkında.

Bir geliştirici olarak (en azından bunları kullanabilecek kadar) kaynak koduna yönelik sürüm kontrol sistemlerinin (SVN ve Git gibi) nasıl çalıştığını ve coğrafyadaki geçmişim bana coğrafi verilerle ilgili bazı benzersiz zorluklar olduğunu söylüyor Kaynak koduna (temel olarak metin olan) tamamen benzemeyen yaklaşım ele alınır.

Coğrafi veriler için (d) VCS'lerle uğraşırken karşılaşılan zorluklar nelerdir, bunları nasıl çözersiniz, onlara ihtiyacımız var mı ve bu sorunları çözdüğümden başka girişimler var mı?

OpenGeo teknik incelemelerinin bazı sorularıma cevap vereceğini biliyorum, ama gerçekte peşinde olduğum şey, "10 yaşındaymışım gibi söyle" tarzında daha "pedagojik" bir cevap. İnsanları, coğrafi verilerin karışıma getirdiği zorlukların ve çözümlerin büyük bir açıklamasına yönlendirebilirim.

Umarım, belirli bir sorunu çözmek istemiyorum dediğim gibi, konuyla ilgili bazı düşünceler sunmak için biraz zaman alan birisinin zaman alacağını umuyorum, ancak bu konu beni ilgilendiren bir konu.

Yanıtlar:


19

Şu anda coğrafi verilerimizin yeniden tasarlanması için çalışıyoruz. Onların evriminin şu ana kadar 20 yıldan uzun sürdüğünü söylemeliyim. Jeo uzamsal veri yönetiminde aşağıdaki temel özellikleri belirledik:

  • eşzamanlı düzenleme
  • veri bölümlerini okuma veya yazma izinleri
  • verilere dayanan hizmetleri çalıştırırken güncellemeler (İşlemler ve ACID paradigması)
  • iç ve dış şema (iç şemayı değiştirmek hizmetleri etkilememelidir)
  • büyük miktarda veriyi (terabayt raster ve gigabayt vektör verisinin hundret'leri) saklama ve bunlara erişme yeteneği
  • farklı katmanlar arasında veri tutarlılığı (her parsel bir bölgeye aittir)

Aşağıdaki yaklaşımları değerlendirdik, işte onlar hakkında söyleyebileceklerim:

  1. ESRI Kurumsal Coğrafi Veri Tabanı(ArcGIS 10.1); daha önce sahip olduklarımızla (SDE) hemen hemen aynıydı, ancak işlemlerin üstesinden gelmek için genişleme özelliğine sahip. Ancak bu gerçekten bir Kurumsal Coğrafi Veri Tabanı değil, benim görüşüme göre SDE sadece bir çalışma grubunda bir coğrafi veri sunucusu olarak çalışıyor, insanların sabah 8:00 - 20:00 arasında çalıştığı ve daha sonra bakım işleri için çevrimdışı duruma getirebileceğiniz, işlem taahhüt (ESRI konuşmasında mutabakat ve postalama), çoğaltma, vb ... Bu verilerin üstüne hizmetler oluşturuyorsanız, çoğaltılmış bir üretim veritabanını (işin yapıldığı yerde) bir hazırlama veritabanını kullanmanız gerekir. Bu hemen hemen programlama / programlama ve konuşlandırma ile aynıdır. Zengin özellikli ESRI paketinin sunduğu özellikler oldukça hoş olsa da, esneklikten yoksundur (örneğin şema değişiklikleri veya insanlar çalışırken bakım işleri, örneğin dizin oluşturma).

  2. Düz Dosyalar ve Sürüm Kontrol SistemiGit'i seçiyoruz (zaten bir GeoGit olduğunu bilmiyordum). Evet, arkadaşlarımdan bazıları ve ben de yazılım mühendisliğinden geliyorum. Hepsi çok basit olabilir. Sanırım bu onun sorunu: Bir araba üreten bir araba tamircisi gibi. Onun için bakımı basit olacak, ama aynı zamanda emin olmak için araba sürmek ve çirkin olmak da can sıkıcı olacak. Ayrıca bazı büyük dezavantajları olduğunu düşünüyorum: Sürüm 2 TeraByte (veya daha da fazla ikili) Rasterdataset nasıl kontrol edilir? Ve hangi formatta? Metin tabanlı formatlar (örneğin GML) kullanıyorsanız, vektör verileri kolayca sürüm kontrol edilebilir, ancak o zaman milyar satırlık bir veri kümesiyle çalışmak da zordur. Etkili bir kullanıcı izni yönetimi yapıp yapamayacağımızdan hala emin değilim çünkü herkesin her şeyi düzenlemesine ve hatta görüntülemesine izin verilmemesi gerekiyor. Ve aynı anda 4 kullanıcı tarafından yoğun olarak düzenlenmiş bir vektör veri kümesini nasıl birleştirirsiniz? En azından bunların hepsini etkin bir şekilde yapabilmek için gerçek bir bilgisayar bilimcisi / programcısı olmalısınız ... GIS kullanıcılarımız planlamacılar, anketörler, jeologlar vb. Programcılar gibi sürüm soylarını düşünmeleri ya da dallanmaları gerektiği gibi kullanmaları bir problemdir. Bununla birlikte, veri depolarını paylaşılan repolar olarak düşünmek ilginç bir fikirdir.

  3. Basit bir konteyner olarak düz tabled veritabanı . Aynı SDE'nin yaptığı gibi, ancak SDE’de olmayan şeyler. Bakımı zor, çünkü aslında bir RDBMS'nin size sunduğu avantajlardan faydalanmıyorsunuz. Evet, sadece bir veritabanındaki her şeyi yüklemek çok basittir, ancak bu kesinlikle veri yönetimi değildir.

  4. Bigdata ve NoSQL . Düz dosyalar ve düz masalarla aynı problemler. Bence web kullanımı için basit bir dosya sistemi API. Evet, web’de iyi çalışır ve evet, sadece belgelerinizi atmak kolaydır, ancak sanırım terabaytlık (muhtemelen raster) veriler üzerinde mekansal veri analizi yapmak istersem, seri hale getirilmemesine ve seri hale getirilmemesini istiyorum HTTP arayüzü üzerinden.

GÜNCELLEME 2018: İşte bir çok ivme yaratan birçok yeni şey. Birkaç isim:

  • Bulut bloğu depolama ve HDFS
  • Python / düzgün / Dask Yığını
  • Apache Spark

    • Vektör verileri için GeoMesa / GeoWave
    • Tarama verileri için GeoTrellis
  • ve daha fazlası

    1. Kapsamlı klasik veritabanı modellemesi(bir RDBMS ile). Asıl sorun, verileri herhangi bir yere bırakmanın zor olması ve gelecekteki her ihtiyaca uygun olmasını ummasıdır. Ancak bir veritabanında sağlam bir veri modeli (OSM de bunu da yaptı) belirlemek için bir miktar zaman koyarsanız, tüm avantajlarından faydalanabilirsiniz. Dağıtılmış işlemlerde verileri düzenleyebilir ve güncelleyebiliriz, aynı zamanda temel şemalarını da değiştirebiliriz; hizmetler yine de aynı verilerin dış şemalarına dayanır, bakımını yapabilir, tutarlılığını kontrol edebilir, izinleri verebilir ve izinleri reddedebiliriz, Çok büyük miktarlarda veriyi hala hızlı bir şekilde erişebildiğimiz halde depolayabiliyor, tarihî veri modellerini oluşturabiliyoruz ve şeffaf bir şekilde vb. tetikleyebiliyoruz. Sql sunucusunu kullandığımız için hala yerel bir raster türünden yoksun, ancak diğer veritabanı satıcıları bunu zaten öneriyor.

Bence ilişkisel veri tabanı modeli, son birkaç yıldaki (bundan önce BLOB Konteynerlerinin bulunduğu mekansal) mekansal veri türleri ile mekansal dünyada ayağa kalktığını ve hala veriyi saklamanın en esnek ve profesyonel şekli olduğunu düşünüyorum. Bu, VCS yaklaşımları veya NoSQL ile desteklenmemesi gerektiği anlamına gelmez, ancak bu yaklaşımların, profesyonel merkezi bir mekansal veri yönetimi biçiminden ziyade, kullanıcı gruplarında bir veri dağılımı biçimi olarak daha muhtemel olduğunu düşünüyorum. Ayrıca OSM, büyük miktarda veri ithal etmek (kalabalığın değil, Avusturya kaynaklı OSM verilerinin çoğu, kalabalık kaynaklı değil bir günde ithal edildi) ve fayans üretimi gibi, kalabalığın sağlayamadığı birçok görevi merkezileştirmiştir. İşbirlikçi (kalabalık kaynaklı) kısım gerçekten çok önemlidir, ancak işin sadece yarısıdır.

Sanırım bunun çoğunu yeniden ifade etmem ve daha fazla gerçek vermem gerekiyor. Bunun gibi bir soruyu birkaç saat içinde kapsamlı bir şekilde cevaplamak zor, önümüzdeki günlerde cevabımın kalitesini arttırmaya çalışacağım.


Bu cevapta herhangi bir güncelleme var mı? Programcı meraklısı olmayan bir CBS teknisyeni ofisi için GUI tabanlı bir sürüm kontrol kurulumu arıyorum ve ihtiyacımız olan işlevsellik çok temel; Bir NAS üzerinde bir ana veri setine sahip olmak ve kullanıcıların periyodik olarak senkronize etmesini istiyoruz, böylece verilerin yerel kopyaları üzerinde çalışabilirler, ancak her zaman NAS üzerindeki ana verilerle senkronize kalıyorlar, çünkü kıdemli GIS analisti periyodik olarak güncelleniyor NAS verisi. Git ve Mercurial'a baktım, ancak hepsi çok fazla etkilenmiş ve daha fazla basit bir uygulama için komut satırı odaklı görünüyorlar. Düşüncesi olan var mı?
user25644
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.