Was spricht für PostgreSQL?

Soll ein Unternehmen eine Lösung für alle Aufgaben nutzen oder eine Vielzahl von Tools, die unterschiedlichste Anforderungen optimal abdecken? Auch wenn die Antwort auf diese Frage nicht leicht ist, zeigt gerade PostgreSQL das Potenzial einer Einzelsystemlösung.
PostgreSQL wird im Allgemeinen als Open-Source-Datenbank in einem relationalen Datenbank-Kontext gesehen. Dadurch wird es auf OLTP (Online Transaction Processing)-Systeme beschränkt. PostgreSQL hat sich jedoch seit rund 25 Jahren kontinuierlich weiterentwickelt und kann inzwischen auch Funktionen abdecken, die als nicht-relational definiert sind und bei denen typischerweise NoSQL-Datenbanken und Frameworks wie Cassandra, MongoDB oder Hadoop ins Spiel kommen.
Dieser Punkt führt zu einer heiß diskutierten Frage in der Datenbank-Community: Ist es vorteilhafter, alle Daten in einem einzigen System zu halten oder die Daten nach Funktionen in maßgeschneiderte Systeme aufzuteilen. Eine eindeutige Antwort darauf gibt es nicht. Es ist weder richtig, dass PostgreSQL nur für OLTP geeignet ist, noch trifft es zu, dass es alles kann. Folglich sollte die Frage auch anders gestellt werden: "An welchem architektonischen Punkt sollte ein Unternehmen beginnen, seine Daten in skalierbare Services aufzuteilen?"
PostgreSQL reicht in aller Regel
Ausgangspunkt für die Beantwortung der Frage kann die Betrachtung des Für und Wider einer "One-size-fits-all"-Strategie sein. Dafür spricht, dass die Daten mit Konsistenz auf der Transaktionsebene gespeichert werden. Dadurch werden auch alle Änderungen im gesamten System widergespiegelt. Der zweite große Vorteil liegt in der Hochverfügbarkeitskonfiguration. Nicht zuletzt ist ein einziges System auch leichter zu überwachen.
Der zentrale Vorteil der Dezentralisierung liegt darin, dass mehrere Services unabhängig voneinander auf ihre Performance getrimmt werden können, das heißt, es muss keine komplette Systemaufrüstung erfolgen. Zudem kann ein Unternehmen Diagnosen zu einzelnen Services durchführen, sodass es Probleme eventuell schneller lokalisieren kann. Allerdings muss sich ein Unternehmen bei einer solchen Vorgehensweise immer eine entscheidende Frage stellen? Welche umfangreichen Architekturanpassungen und -erweiterungen sind erforderlich – etwa hinsichtlich Load Balancing, Connection Pooling oder Caching? Klar ist auch, dass die Konzeption eines Data-Service-Layers, der auf vielen Datenspeichertypen basiert, eine sehr komplexe Aufgabe sein kann.
Viel spricht somit für die Verwendung einer einzigen Datenbankarchitektur. Doch wann ist es sinnvoll, Services zu trennen? Die Antwort liegt im spezifischen Datennutzungsmuster. PostgreSQL ist für die vertikale Skalierbarkeit konzipiert. So kann jeweils nur ein System Änderungen an Daten empfangen. Diese Einschränkung bestimmt die maximale Anzahl von Transaktionen einer Anwendung, die PostgreSQL zulässt.
Wenn sich ein Unternehmen dieser Kapazitätsgrenze möglicher Transaktionen nähert, sollte es die Nutzung mehrerer Datenbanken in Betracht ziehen, unabhängig davon, ob es sich dabei um PostgreSQL-Datenbanken handelt oder nicht. Das Ziel muss allerdings sein, so lange wie möglich in der Einzelsystemlösung zu bleiben. Die große Mehrheit der Systeme wird schließlich nie aus dem Einzelsystem herauswachsen. Dieser Erfahrungswert resultiert aus einer rund 25-jährigen PostgreSQL-Nutzung bei vielen Unternehmen.
Einsatzszenarien wachsen dynamisch
Die Zahl der potenziellen Anwendungsfälle für PostgreSQL steigt kontinuierlich und exponentiell. Das heißt, die Anzahl der Applikationen, für die PostgreSQL nutzbar ist, wird immer größer. Umgekehrt nimmt die Zahl derjenigen Anwendungen ab, für die es nicht geeignet ist. Noch vor zwei Jahrzehnten wäre es völlig berechtigt gewesen, zu sagen, dass PostgreSQL nur für OLTP-Anwendungen mit einigen Megabyte Daten die optimale Lösung ist. Inzwischen umfasst das Zielsegment neben OLTP aber auch ETL (Extract, Transform, Load)-, OLAP (Online Analytical Processing)- oder ODS (Operational Data Storage)-Systeme.
Selbst wenn PostgreSQL keine einfache Technologie ist, die auch spezifische Anforderungen hinsichtlich Konfiguration, Deployment und Management stellt, sprechen viele Aspekte für eine Nutzung. Die Datenbankplattform hat sich inzwischen zunehmend zu einer interessanten und überzeugenden Alternative für etablierte Lösungen wie Oracle entwickelt. Dafür gibt es mehrere Gründe wie den einfachen Einstieg, den Open-Source-Gedanken, die Lizenzierung und das Ökosystem sowie die Erweiterbarkeit.
Der Einstieg in PostgreSQL wird zum einen durch die sehr umfassende Dokumentation erleichtert. Aspekte, die nicht direkt in der offiziellen Dokumentation abgedeckt werden, sind in öffentlichen Foren und Kommunikationsplattformen verfügbar. Zum anderen ist eine PostgreSQL-Datenbank einfach einzurichten und zu verwalten. Zum Beispiel können Sandboxes für jeden Change Request erstellt werden, der einen Entwicklungs- und Designprozess durchläuft.
Da PostgreSQL eine echte Open-Source-Lösung ist, bietet es eine hohe Flexibilität und Portabilität. Wenn in einem Unternehmen die Lösung intern verwaltet wird und der Hauptentwickler ausfällt, kann es schnell eine externe Unterstützung erhalten. Im Unterschied zu proprietären Lösungen fallen auch keine ständig steigenden Lizenzgebühren an. Die PostgreSQL-Lizenz ist dabei eine der liberalsten in der Open-Source-Community. Alle neuen Features, die in das Projekt einfließen, sind auch direkt in der Installation eines Unternehmens verfügbar, ohne dass es sich darum eigens kümmern müsste. Ohne zusätzliche Lizenzkosten profitiert ein Anwender deshalb von sämtlichen Verbesserungen.
Bei PostgreSQL gibt es zwei Möglichkeiten für Erweiterungen. Die erste wird "Extensions" genannt. Sie können von jedem erstellt werden und erfordern keine Änderung des zugrunde liegenden PostgreSQL-Quellcodes. Extensions werden unabhängig von PostgreSQL paketiert und für die Bereitstellung ist ein Package Manager auf den meisten gängigen Plattformen verfügbar. Die zweite Möglichkeit für die PostgreSQL-Erweiterung besteht darin, direkt einen Beitrag zum PostgreSQL-Projekt zu leisten. Dafür können sich Unternehmen mit der PostgreSQL Global Development Group (PGDG) in Verbindung setzen [1].
PostgreSQL bietet somit viele Vorteile und wird bereits in vielen Branchen und für unterschiedlichste Anwendungsfälle erfolgreich eingesetzt – bis hin zur Skalierung von NoSQL-Workloads. Stehen Unternehmen also vor der Entscheidung, eine "One-size-fits-all"- oder "Best of Breed"-Strategie zu verfolgen, sollten sie auch das bewährte, leistungsstarke und flexible Datenbank-Managementsystem PostgreSQL näher unter die Lupe nehmen.