Apache üzerinden sunulan veri yoğun bir web uygulaması yazıyorum. Sorum, birden fazla seçenek olduğu için işlemenin en iyi nasıl düzenleneceği ile ilgili.
Benim emrinde OpenLayers / JQuery / Javascript, PostGIS / Postgresql (pgsql ile), python / psycopg2, php var.
Veritabanı yaklaşık 3 milyon satır içeriyor ve prototip şu anda şu şekilde çalışıyor:
Kullanıcı OpenLayers penceresindeki bir noktayı tıklar
Koordinat, sunucudaki bir python işlevine AJAX isteği olarak gönderilir
Şu anda başvurum vatansız
Python'un psycopg2 bir pgsql saklı yordamı çağırmak için kullanılır ve büyük bir WKT değerleri kümesi (ve bir veri alanı) python modülüne geri döndürülür
Veri alanı, Python'daki WKT kayıtlarını aşağıdaki gibi kategorilere ayırmak için kullanılır: tüm WKT değerleri 5 gruptan birinde sınıflandırılır. WKT değerlerinin yaklaşık% 1'i aslında değiştirilir.
WKT'nin beş seti / grubu, beş farklı çokgen oluşturmak için tamponlanır. Şu anda bunu yapmak için veritabanında saklı bir yordam çağırıyorum. Bu da sadece ST_BUFFER kullanır. (Shapely kullanmayı düşündüm ama GEOS kütüphanesi her iki durumda da kullanıldığından performans avantajı olacağından emin değilim ...)
Son olarak, 5 WKT metin değeri bir JSON dizesinde toplanır ve beş katman halinde oluşturulması için OpenLayers'a geri gönderilir.
Darboğazların ilk mekansal araştırma ve son tamponlama aşaması olduğunu görüyorum.
Soru sanırım:
Bir şeyleri düzenlemenin daha iyi bir yolu var mı? Örneğin, TÜM veri işleme PostgreSQL'de (örneğin imleçlerle) yapılmalıdır ve bu bakım ve performans açısından iyi bir şey midir? Uzun WKT dizelerini web istemcisine aktarmaktan kaçınmak için bir döşeme sunucusu kullanmak daha iyi olur mu? Nasıl hitap edersin?