Interessante Funktionen in PostgreSQL

Lesezeit
3 Minuten
Bis jetzt gelesen

Interessante Funktionen in PostgreSQL

05.02.2014 - 14:00
Veröffentlicht in:
Das objektrelationale Datenbanksystem PostgreSQL hat seit Jahren eine treue Anhängerschaft, nicht zuletzt durch die kontinuierlich bereitgestellten Weiterentwicklungen in den letzten Versionen. Als eine der vielseitigsten und leistungsstärksten freien objektrelationalen Datenbanken wird es mittlerweile von einigen der weltweit größten Unternehmen genutzt und kann so seine Stärken für den professionellen Unternehmenseinsatz beweisen. Unser Fachartikel stellt zehn besonders interessante Funktionen des Datenbanksystems vor.
Seit Jahren spielte PostgreSQL – oft nur Postgres genannt – die Rolle eines zuverlässigen Mitspielers, der den führenden Part kommerzieller Datenbanken ergänzte. Traditionell als Datenbank bekannt, die "einfach funktioniert", fehlten ihr noch viele Funktionen, nach denen Unternehmen in Zeiten unaufhörlich wachsender Datenbanken verlangten. In den vergangenen Jahren hat die Community Postgres erheblich vorangebracht und seine Bedeutung auch für größere Unternehmen gesteigert. Das Datenbanksystem bewältigt auch außergewöhnlich große und unterschiedlichste Arbeitsbelastungen.

Würden wir sämtliche Funktionen von Postgres beschreiben wollen, würde dies in einem Kompendium mit dem Umfang eines epischen Romans münden. Aber zum Glück ist dies nicht notwendig, da die umfassende Postgres-Dokumentation die meisten Funktionen zufriedenstellend abdeckt. Stattdessen wollen wir im Folgenden neben TOAST ein knappes Dutzend weitere ganz besonders interessante und weniger bekannte PostgreSQL-Funktionen erläutern.

TOAST
Wie auch Ihr Tag eventuell am frühen Morgen beginnt, starten auch wir: mit einem TOAST, auch bekannt unter "The Oversized-Attribute Storage Technique". Ist ein Feldwert in einem Datensatz extrem groß (etwa bei Video- oder Tondateien oder -dokumenten), komprimiert Postgres die Datei automatisch und speichert sie außerhalb der Tabelle, wo nur die diejenigen Informationen gespeichert werden, die zum Abfragen der Daten bei Bedarf benötigt werden. Dies erleichtert die Integration großer Datentypen in eine Applikation, da zum Funktionieren keine weiteren Maßnahmen erforderlich sind – keine Konfigurationsänderungen, keine speziellen Befehlsoptionen, keine Änderung von OS-Parametern.

JSON
JSON (JavaScript Object Notation) ist heute eines der populärsten Datenaustauschformate im Internet. Es wird von praktisch allen der heute gebräuchlichen Programmiersprachen unterstützt und gewinnt durch die Einführung neuer Unterstützungstechnologien wie V8 und Node.js weiterhin an Bedeutung. Manche NoSQL-artigen Systeme, zum Beispiel MongoDB, setzen JSON sogar als ihr natives Datenspeicherformat ein.

Postgres bietet eine ausgereifte Unterstützung für JSON: Es verwendet einen JSON-Datentyp, der JSON-Text validiert und speichert und bietet Funktionen zur Extraktion von Elementen aus JSON-Werten. Außerdem bietet es die Möglichkeit zur einfachen Kodierung von Abfrageergebnissen mit JSON. Die zuletzt genannte Funktionalität ist besonders wichtig, da sie bedeutet, dass Applikationen, die vorzugsweise nativ mit JSON arbeiten, ihre Daten problemlos in diesem Format von Postgres beziehen können. Außer dem nativen JSON-Datentyp enthält Postgres auch einen JSON-Parser sowie verschiedene JSON-Funktionen. Entwickler von Web-Applikationen müssen daher keine Zeit mit Übersetzungsschichten in ihrem Code zwischen der Datenbank und ihrem Web-Framework, das JSON verwendet, verschwenden. JSON-formatierte Daten können direkt an die Datenbank übermittelt werden, und diese speichert nicht nur korrekt die Daten, sondern validiert sie auch.

Postgres bietet außerdem JSON-Funktionen, die relationale Daten aus einer Tabelle auslesen und sie als gültige JSON-formatierte Strings an die Applikation zurückliefern. Die relationalen Daten können als JSON für einzelne Werte oder komplette Sätze zurückgegeben werden. Es sind auch Funktionen vorhanden, die in Postgres gepflegte Schlüsselwertdaten (mit Hilfe des HSTORE contrib-Moduls) in JSON-formatierte Daten umwandeln. Dies erhöht Flexibilität und Umfang von NoSQL-Applikationen, die sich mit Postgres abdecken lassen. Zusammengenommen bedeuten die Daten-, Operator- und Funktionsverbesserungen von JSON, dass die Entwicklung von NoSQL-artigen Applikationen wesentlich vereinfacht wird.

HSTORE
Ähnlich wie JSON ist HSTORE ein Mechanismus zur Speicherung halbstrukturierter Schlüsselwertdaten in eine Postgres-Datenbank. Im Gegensatz zu JSON ist HSTORE nichthierarchisch, jedoch bietet der HSTORE-Datentyp eine fortschrittliche Indizierungsunterstützung, die es zur bevorzugten Lösung für zahlreiche Applikationen macht. Dies ist besonders nützlich für Sparse-Attribute – statt zahlreiche Spalten zu erzeugen, die alle nur für einen kleinen Prozentsatz der Datensätze in der Tabelle nicht gleich null sind, lässt sich eine einzige HSTORE-Spalte erzeugen und für jede Zeile nur die zu diesem Datensatz gehörigen Schlüssel eintragen.

Dies ist ebenfalls nützlich in Fällen, in denen neue Attribute fliegend und ohne vorherige Planung hinzugefügt werden müssen. Wie bei JSON kann hier bei Bedarf eine schemalose Datenbank emuliert werden. Letztendlich erfüllt dies eine besondere Anforderung der Speicherung in relationalen Tabellen, wenn der Datenbank-Administrator nicht viel Platz für Attribute verschwenden will, die für zahlreiche Datensätze nie mit einem Wert belegt werden. Hierdurch lassen sich sehr verschiedene Arten von Datensätzen (die ein gemeinsames Merkmal haben müssen, etwa dass sie alle Produkte sind) mit verschiedenen Attributen in ein und derselben Tabelle speichern und mit SQL abfragen. Dies kann ein weiteres, sehr nützliches Werkzeug für einen Web-Entwickler sein, oder für jemanden, der sowohl die ACID-Eigenschaften von Postgres als auch einige NoSQL-artigen Verhaltensweisen benötigt.

Erweiterbarkeit und PostGIS
PostgreSQL wurde von Anfang an auf Erweiterbarkeit ausgelegt. Alle Anwender können neuen Code in C erstellen, der dynamisch geladen und mit dem Datenbank-Backend integriert werden kann. Dies erlaubt das Hinzufügen neuer Datentypen und neuer Indizierungsmöglichkeiten ohne Veränderung des Kerncodes. Als Ergebnis hat sich ein umfangreiches System von Erweiterungen um PostgreSQL herum entwickelt, die durch Websites wie pgxn.org [1] verbreitet werden. Viele dieser Projekte sind klein, es gibt aber auch mehrere große Projekte auf der Basis von PostgreSQL, die die Datenbank um leistungsfähige neue Funktionen erweitert haben. Das wohl wichtigste dieser Projekte ist PostGIS, das die Datenbank um branchenführende geospatiale Funktionen erweitert.



                                                Seite 1 von 2                     Nächste Seite>>






Marc Linster, Senior Vice President, Products and Services bei EnterpriseDB/ln

[1] http://pgxn.org

Ähnliche Beiträge

Seite 2 - Wie künstliche Intelligenz das Rechenzentrum prägt

5G und IoT verlagern Workloads an den Edge
Cloud und mobile Konnektivität haben in den vergangenen Jahren auf vielen Gebieten die IT-Entwicklung geprägt. Über zehn Millionen Haushalte haben inzwischen zum Smarthome umgerüstet, nutzen also Geräte des IoT. Ein Ende dieses Wachstums ist derzeit noch nicht auszumachen. Die zunehmende Adaption von 5G wird der gesamten Entwicklung einen weiteren Schub verleihen und den Weg vom IoT zum IoE (Internet of Everything) bahnen.

Wie künstliche Intelligenz das Rechenzentrum prägt

Der Erfolg von KI-Projekten hängt von zahlreichen Faktoren ab. Dazu zählen die gewählten Methoden, die Modelle, die konkreten Algorithmen und auch die Datenqualität. Unterschätzt wird von IT-Verantwortlichen oft aber ein anderer, hoch relevanter Aspekt: die Infrastruktur des Rechenzentrums. Unser Fachartikel erklärt, wieso es nicht genügt, sich nur um Speicherkapazität und Sicherungskonzepte wie Data Warehouse, Data Lake, und Lakehouse Gedanken zu machen.

Im Test: Gapteq 3.5.3

SQL-Datenbanken sind ein wichtiges Hilfsmittel zur einfachen Speicherung und Verwaltung größerer Datenmengen. Eine applikationsunabhängige Nutzung von SQL für eigene Unternehmensdaten scheitert allerdings oft an der fehlenden Ein- und Ausgabeschnittstelle hin zu den Anwendern. Abhilfe verspricht die Low-Code-Plattform Gapteq, mit der sich sehr einfach komfortable Benutzeroberflächen für MS SQL und mySQL per Drag & Drop gestalten lassen.