Was sind die Vor- und Nachteile des Datentyps hstore in Postgis?

8

PostgreSQL verfügt über ein Modul namens hstore , das die Verwendung von Schlüssel / Wert-Paaren implementiert (ähnlich dem OpenStreetMap-Modell, jedoch in einer einzigen Tabelle).

Was sind die Vor- und Nachteile von hstore in Bezug auf GIS-Kompatibilität, Hinzufügen und Abrufen von Daten?

Pablo
quelle
1
Nach einigen Tests: Nachteile: Qgis zeigt keine Hstore-Spalten an. Eine Lösung, speichern Sie Schlüssel / Wert in einer varchardurch Kommas getrennten Liste: 'name=foo,type=bar,' Und rufen Sie Werte ab mit:SELECT * WHERE tags LIKE '%type=bar,%'
Pablo

Antworten:

2

Wir demonstrieren dies tatsächlich in unserem Buch (das angeblich in der nächsten Woche oder so gedruckt wird). In Kapitel 3. Sie können den Code hier herunterladen: http://www.postgis.us/chapter_03

(und natürlich, wenn Sie unser Buch kaufen, erhalten Sie unsere ausführlichen Erklärungen der Vor- und Nachteile)

Es verwendet den hstore-Schalter osm2pgsql, um osm-Tags als hstore-Spalte zu importieren.

Um die Tatsache zu kompensieren, dass Quantum und andere Dinge hstore nicht direkt unterstützen, erstellen wir eine Ansicht der benötigten Schlüssel-Tags. Für Anwendungen, bei denen Sie die vollständige Kontrolle über eine Abfrage haben, die den Schlüssel-> Wert als Spalte aliasisiert, funktioniert dies auch dann, wenn Ihr Datenbanktreiber den Hstore-Typ nicht versteht.

LR1234567
quelle
Ich habe dieses Buch. Ich habe die MEAP-Edition gekauft. Ich werde es mir ansehen, aber ich denke, es ist veraltet und ich muss auf die endgültige Version warten. Übrigens ist es ein schönes Buch. Vielen Dank.
Pablo
4

Vorteile:

Es ist ein leistungsstarker und flexibler Schlüssel / Wert, der indiziert und abgefragt werden kann.

Ich habe ein komplexes schemenloses Web-GIS, das eine HStore-Spalte zum Speichern der Features-Eigenschaften verwendet.

Nachteile:

Die meisten WMS / WFS-Tools wie Mapserver, Geoserver und Ähnliches können HStore-Spalten nicht verstehen und arbeiten nicht mit ihnen, sodass Sie am Ende fest codierte SQL-Ansichten erstellen (zumindest in Geoserver). Sie können es weiterhin für die Arbeit mit WMS / WFS verwenden, aber da Sie die Schlüssel fest codieren müssen, verlieren Sie die schemenlosen Funktionen.

Pankas
quelle
2

Ich habe selbst keine Erfahrung damit, aber wenn Sie daran interessiert sind, räumliche Daten in einer solchen Datenbank zu speichern, möchten Sie möglicherweise nach räumlichen Daten suchen. Auf dem Post fand ich zB: /programming/2041622/nosql-and-spatial-data

johanvdw
quelle