PostgreSQL
Relationale Datenbankplattform für strukturierte Fachdaten und Dienstzustände.
PostgreSQL ist ein relationales Open-Source-Datenbanksystem für strukturierte und konsistent zu verarbeitende Daten. Tabellen, Beziehungen, Constraints und Transaktionen bilden fachliche Strukturen ab; SQL dient als gemeinsame Sprache für Definition, Änderung und Abfrage der Daten. Durch MVCC können mehrere Zugriffe parallel arbeiten, ohne dass lesende und schreibende Vorgänge unnötig voneinander blockiert werden.
Die wichtigsten technischen Konzepte sind:
- Datenbanken und Schemas trennen Datenbestände und Namensräume innerhalb eines Clusters.
- Tabellen, Beziehungen und Constraints sichern die Struktur und referenzielle Integrität der Daten.
- Transaktionen fassen mehrere Änderungen zu einer vollständig ausgeführten oder vollständig verworfenen Einheit zusammen.
- Indizes und der Query Planner unterstützen die effiziente Ausführung auch komplexer Abfragen.
- Rollen und Privilegien begrenzen den Zugriff auf Datenbanken, Schemas und Objekte.
- Erweiterungen ergänzen PostgreSQL um zusätzliche Datentypen, Funktionen und spezialisierte Verarbeitungsmodelle.
PostgreSQL in der UDSP
Die UDSP verwendet PostgreSQL als gemeinsame Persistenztechnologie, aber nicht als zentrale Gesamtdatenbank. Konsumierende Plattformkomponenten erhalten abhängig von ihrer Aufgabe getrennte Cluster, Datenbanken oder Schemas. Ein Dienst kann deshalb nicht allein deshalb auf die Daten eines anderen Dienstes zugreifen, weil beide PostgreSQL einsetzen.
Der PostgreSQL-Operator erzeugt und verwaltet die Kubernetes-Ressourcen der Datenbank-Cluster. Dazu gehören unter anderem Instanzen, persistente Volumes und dienstbezogene Zugangsdaten in Kubernetes Secrets. Die tatsächlich eingesetzte PostgreSQL-Version ist vom jeweiligen Stack und dessen Datenbank-Image abhängig. Sie wird deshalb auf der Seite der konsumierenden Komponente dokumentiert; PostgreSQL besitzt in der UDSP keinen einzelnen globalen Versionsstand.
Für besondere Datenmodelle erweitert die UDSP PostgreSQL gezielt:
PostGIS
Ergänzt Geometrien, räumliche Indizes, Koordinatensysteme und Geo-SQL für räumliche Datenmodelle.
TimescaleDB
Ergänzt Hypertables und zeitbasierte Partitionierung für Zeitreihen, historische Daten und analytische Abfragen.
Anwendungen greifen ausschließlich über ihre jeweils eigenen technischen Zugänge auf ihre Datenbanken zu. Auswertungsdienste erhalten nur dann einen gesonderten Zugang, wenn eine Datenquelle ausdrücklich konfiguriert wurde. Für technische Administration steht pgAdmin als getrennte Plattformkomponente zur Verfügung.