Lesezeit
2 Minuten
Mit PostGIS Geoinformationen in PostgreSQL integrieren
Anwendungen überwachen heute die Bereiche Supply Chain Management, Flottenbetrieb und Personal. Durch eine Verbindung mit einer traditionellen relationalen Datenbank kombinieren Erweiterungen Geoinformationen mit Management-Tools für Geschäftsprozesse, um so in Echtzeit verwertbare Informationen zu liefern. Wie unser Fachartikel zeigt, setzen derartige Lösungen oft auf PostGIS, was nicht zuletzt am belastbaren und soliden Charakter dieses Open-Source-Geodaten-Werkzeugs für PostgreSQL liegt.
Herkömmliche transaktionale Datenbanken enthalten eine Fülle von organisatorischen Daten über Kunden, Produkte und Lieferanten, die von Unternehmen für strategische und operative Zwecke genutzt werden. Sie werten diese Daten kontinuierlich aus, um hieraus geeignete Maßnahmen abzuleiten, strategische Erkenntnisse zu gewinnen, die eigenen Abläufe effizienter zu gestalten, Kosten zu senken oder neue Umsatzquellen zu erschließen. Ein leistungsfähiges Instrument bei der Untersuchung der Daten ist die Möglichkeit, Transaktionsdaten unter Verwendung von Geolokalisierungstechnologie mit Informationen aus der realen Welt zu verknüpfen.
PostGIS führend im Bereich GIS
Zu den leistungsfähigsten Geolokalisierungs-Datenbanktechnologien zählt PostGIS, eine Erweiterung zu PostgreSQL – das weltweit wohl fortschrittlichste relationale Datenbanksystem auf Open-Source-Basis. PostGIS ist ebenfalls eine Open-Source-Software, die 2001 von Refractions Research eingeführt wurde.
Das Aufsetzen von PostGIS auf PostgreSQL bietet zahlreiche Vorteile. Für die Entwickler von geografischen Informationssystemen (GIS) enthält PostgreSQL nützliche Windowing-Funktionen, rekursive Common Table Expressions (CTEs), Unterstützung von Objekttypen und die Möglichkeit zur Ausführung von Code am Speicherort der Daten in zahlreichen prozeduralen Programmiersprachen wie PL/Java, PL/R, PL/Python und anderen. Wichtig für GIS-Entwickler sind auch Operatoren in Postgres wie UPSERT, Gruppierungen, Cube, Rollup, Row Level Security und viele andere. Diese besonderen Operatoren sind in der neuen Version 9.5 von PostgreSQL enthalten. Ein starkes Design-Feature von Postgres ist seine Erweiterbarkeit. Es wurde von Anfang an für die Einbindung von Runtime-Erweiterungen ausgelegt, was bedeutet, dass PostGIS-Datentypen wie Geografie und Geometrie in der Datenbank als Elemente erster Klasse behandelt.
Aufgesetzt auf die in PostgreSQL verfügbaren nativen Features lässt sich PostGIS auch problemlos in der Skalierung erweitern. Während andere räumlichen Erweiterungen schon mal bis zu 40.000 US-Dollar kosten können, lässt sich PostGIS ohne Zusatzkosten einrichten. Außerdem ist es möglich, die PostGIS-Erweiterung hinzuzufügen und die in eine Datenbank aufgenommenen Geodaten so oft wie gewünscht in andere Datenbanken zu replizieren. Dabei können sich die anderen Datenbankserver im selben Server-Rack oder auch an beliebigen Orten überall auf der Welt befinden.
PostGIS skaliert gemeinsam mit Postgres über einen einzelnen Datenbank-Server hinaus.
Unter Verwendung eines replikationsfähigen Verbindungspoolers wie pgpool lassen sich auch alle Schreibzugriffe an die Primärknoten und die Lesezugriffe an die Standby-Server richten. Hierdurch kann die Belastung durch Lesezugriffe durch passende Skalierung verringert werden und die Schreibzugriffe auf die Primärsysteme werden optimiert, da Operationen wie Reporting und Datensicherungen ausgelagert werden.
Datentypen in PostGIS
PostGIS verwendet vier Haupttypen von Geodaten:
Seite 2: Datentypen in PostGIS
ln/Adam Wright, Database Consultant bei EnterpriseDB
PostGIS führend im Bereich GIS
Zu den leistungsfähigsten Geolokalisierungs-Datenbanktechnologien zählt PostGIS, eine Erweiterung zu PostgreSQL – das weltweit wohl fortschrittlichste relationale Datenbanksystem auf Open-Source-Basis. PostGIS ist ebenfalls eine Open-Source-Software, die 2001 von Refractions Research eingeführt wurde.
Das Aufsetzen von PostGIS auf PostgreSQL bietet zahlreiche Vorteile. Für die Entwickler von geografischen Informationssystemen (GIS) enthält PostgreSQL nützliche Windowing-Funktionen, rekursive Common Table Expressions (CTEs), Unterstützung von Objekttypen und die Möglichkeit zur Ausführung von Code am Speicherort der Daten in zahlreichen prozeduralen Programmiersprachen wie PL/Java, PL/R, PL/Python und anderen. Wichtig für GIS-Entwickler sind auch Operatoren in Postgres wie UPSERT, Gruppierungen, Cube, Rollup, Row Level Security und viele andere. Diese besonderen Operatoren sind in der neuen Version 9.5 von PostgreSQL enthalten. Ein starkes Design-Feature von Postgres ist seine Erweiterbarkeit. Es wurde von Anfang an für die Einbindung von Runtime-Erweiterungen ausgelegt, was bedeutet, dass PostGIS-Datentypen wie Geografie und Geometrie in der Datenbank als Elemente erster Klasse behandelt.
Aufgesetzt auf die in PostgreSQL verfügbaren nativen Features lässt sich PostGIS auch problemlos in der Skalierung erweitern. Während andere räumlichen Erweiterungen schon mal bis zu 40.000 US-Dollar kosten können, lässt sich PostGIS ohne Zusatzkosten einrichten. Außerdem ist es möglich, die PostGIS-Erweiterung hinzuzufügen und die in eine Datenbank aufgenommenen Geodaten so oft wie gewünscht in andere Datenbanken zu replizieren. Dabei können sich die anderen Datenbankserver im selben Server-Rack oder auch an beliebigen Orten überall auf der Welt befinden.
PostGIS skaliert gemeinsam mit Postgres über einen einzelnen Datenbank-Server hinaus.
Unter Verwendung eines replikationsfähigen Verbindungspoolers wie pgpool lassen sich auch alle Schreibzugriffe an die Primärknoten und die Lesezugriffe an die Standby-Server richten. Hierdurch kann die Belastung durch Lesezugriffe durch passende Skalierung verringert werden und die Schreibzugriffe auf die Primärsysteme werden optimiert, da Operationen wie Reporting und Datensicherungen ausgelagert werden.
Datentypen in PostGIS
PostGIS verwendet vier Haupttypen von Geodaten:
- Geometrie für flache Erdprojektion
- Geographie für kugelförmige Erdprojektion
- Rastertyp, wobei jede Zelle Werte enthalten kann, die in Zeilen und Spalten organisiert sind
- Topologietypen zur Modellierung von realitätsbezogenen Regeln für Vektorfunktionen (Topologien erlauben die Anwendung von Beziehungsregeln wie etwa die, dass bei Verschiebung einer Gemarkungsgrenze nach außen automatisch die benachbarte Gemarkungsgrenze nach innen verschoben wird.)
'geodb=# CREATE INDEX idx_customers_geo ON customers USING gist(geo);'Wie bei der üblichen Anwendung des EXPLAIN-Plans, um die Abfrage-Performance anzuzeigen oder um festzustellen, ob ein Index verwendet wird oder nicht, lässt sich auch mit dem neu hinzugefügten GiST-Index arbeiten. Bei Ausführung eines EXPLAIN-Plans für eine einfache Abfrage zur Ermittlung der Anzahl von Kunden innerhalb von zwei Flächeneinheiten von San Francisco ergibt sich:
'explain analyze select count(*) from customers c whereSeite 1: GIS-Erweiterung zu PostgreSQL
st_dwithin(c.geo,st_geomfromtext('POINT(-122.4167 37.7833)',3857),2);'
-> Bitmap Index Scan on idx_customers_geo (cost=0.00..1631.39 rows=45215
width=0) (actual time=15.081..15.081 rows=45760 loops=1)
Index Cond: (geo && '0103000020110F00000100000005000000910F7A36AB1A5FC078
7AA52C43E44140910F7A36AB1A5FC0787AA52C43E44340910F7A36AB1A5EC0787AA52C4
3E44340910F7A36AB1A5EC0787AA52C43E44140910F7A36AB1A5FC0787AA52C43E44140'
::geometry)
Planning time: 0.879 ms
Execution time: 195.629 ms
Seite 2: Datentypen in PostGIS
Seite 1 von 2 | Nächste Seite >> |
ln/Adam Wright, Database Consultant bei EnterpriseDB