PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Oracle zu PostgreSQL:Gründe für die Migration

PostgreSQL hat einige überzeugende Vorteile, von denen einige in keinem anderen Datenbankverwaltungssystem zu finden sind. Dieser Artikel beschreibt diejenigen, die für den Oracle-Entwickler am interessantesten sind, der eine Migration durchführen oder Alternativen für neue Entwicklungen untersuchen möchte.

Um zu verhindern, dass dieser Artikel zu einer weiteren Liste von PostgreSQL-Funktionen wird, bleibt er bei den Funktionen, die es speziell von Oracle unterscheiden, und den Vorteilen, die diese Unterschiede schaffen.

Federation vs. Foreign Data Wrappers

Oracle verfügt über eine Funktion namens Federation, mit der Tabellen aus anderen Datenbanken als lokale Daten behandelt werden können. PostgreSQL steigert dies mit fremden Datenwrappern auf 11. Es ist dem Verbundsystem fantastisch überlegen, kann an alles angeschlossen werden, was auch nur entfernt Daten ähnelt, und kostet nichts an Gebühren. Das macht PostgreSQL zu einer großartigen ETL-Plattform, auch wenn Sie sie nur für die Datenaufnahme verwenden.

plSQL vs. alles andere

Oracle hat eine eingebaute Programmiersprache namens plSQL. PostgreSQL hat ungefähr 80 oder so. Wirklich. Das Erweiterungssystem von PostgreSQL wird verwendet, um prozedurale Sprachen als Plug-Ins zu erstellen, und es gibt Bindungen für so ziemlich jede erdenkliche Sprache. Und wenn nicht, können Sie Mark Wong jederzeit folgen, um zu erfahren, wie Sie eine Verpackung für Ihren persönlichen Favoriten erstellen.

Anwendungsprogrammierung

Oracle stellt eine Anwendungs-API für die Kommunikation mit der Datenbank bereit. PostgreSQL bietet auch eine API für Komfort und vertrauenswürdige Sprachen. Das Produkt ist jedoch Open Source, es gibt also keine Entwicklungsbürger zweiter Klasse. Sie können auf alles zugreifen, was PostgreSQL zu bieten hat, indem Sie die Header-Datei in Ihr Projekt einfügen. Machen Sie damit, was Sie wollen.

Internationalisierung und Lokalisierung

Oracle stellt ein Globalisierungs-Toolkit bereit. PostgreSQL ist von Grund auf so aufgebaut, dass es sich vollständig auf bekannte und weitgehend kompatible Systemdienste für die Lokalisierung stützt. Es kann jede Zeichencodierung, Sortierung und Codepage verwenden, die das Betriebssystem bereitstellt.

Webentwicklung

Oracle erkennt die Existenz von HTML durch HTML DB an. PostgreSQL unterstützt nativ JSON, XML und Plug-ins in Javascript als Backend Programmiersprache, die Sie gleichzeitig mit Java oder jeder anderen Frontend-Sprache Ihrer Wahl verwenden können.

Authentifizierung

Oracle hat ein eingebautes Authentifizierungssystem (eine Anspielung auf Proxy Auth, das etwas flexibler ist). PostgreSQL stützt sich auf die Host Based Authentication- und SASL-Protokolle, um jedes Authentifizierungssystem einzubinden, das der Host unterstützen kann, und einige, die direkt in PostgreSQL eingesteckt werden. Dies bietet eine enorme Bandbreite an Möglichkeiten für die Authentifizierung zusammen mit der Möglichkeit, den Authentifizierungsprozess auf andere Maschinen auszulagern.

Erweiterbarkeit

Oracle hat ein Plugin-System mit meist proprietären Plugins. PostgreSQL hat ein Erweiterungssystem, das von der allgemeinen Community unterstützt wird, mit Tausenden von verfügbaren Plug-Ins.

Skalierbarkeit lesen

Oracle hat eine ziemlich gute vertikale Leseskalierbarkeit. PostgreSQL kann einen praktisch unbegrenzten Lesecluster erstellen. Die Anzahl der Knoten ist nur durch die Menge an Ressourcen begrenzt, die Sie darauf werfen möchten.

Kosten

Es ist schwer, „kostenlos“ zu schlagen, und Oracle gibt sich nicht einmal Mühe. Seien wir ehrlich, Oracle ist einfach lächerlich teuer und es macht ihnen nichts aus, Ihnen jede einzelne Instanz erneut in Rechnung zu stellen.

Auch hier handelt es sich nicht um einen linearen Vergleich. Einer der größten Vorteile von PostgreSQL ist, dass Sie alle gewünschten Instanzen ohne zusätzliche Kosten haben können. (Ich schätze, es sind zusätzliche Kosten von +0,00 $ oder multipliziert mit 0,00 $, Sie entscheiden).

Es ist (gegenüber PostgreSQL) nicht fair, die Kosten einer einzelnen Instanz von Oracle mit einer einzelnen Instanz von PostgreSQL zu vergleichen. Wenn Sie erst einmal die Freiheit der Freiheit kennengelernt haben, wird es schwierig sein, alles in einer einzigen Instanz zu stauen, nur um die Kosten zu senken.

Wie viel darf eine temporäre Datenbank kosten, die Daten auf dem Weg ins Warehouse transformiert? Ich denke, kostenlos ist ungefähr genug. Wie wäre es mit einer transienten Datenbank für das Reporting? Auch dafür nehme ich frei. Wie wäre es mit einem, der der Datenerfassungspunkt für ETL ist? Kostenlos ist gut. Ich mag kostenlos. Es ist sehr, äh … befreiend.

Leistung

Nein, warte! Hören Sie mich an. Ich habe bereits erwähnt, dass PostgreSQL eine unbegrenzte Anzahl von Knoten in einem Lesecluster erstellen kann. Das kann die Kosten einer bestimmten Leseoperation auf nahezu null verwässern. Aber es gibt noch einen anderen Weg, auf dem PostgreSQL leistungsfähiger ist als Oracle.

Da PostgreSQL nichts pro Knoten kostet, können Sie es für jede Arbeitslast anders optimieren. Natürlich können Sie dies auch mit Oracle tun, aber Sie zahlen pro Knoten für die Möglichkeit, es auf diese Weise zu tunen. Wenn Sie also die Optimierungsparameter für Ihr Warehouse von OLTP auf die Berichterstattung an den Data Lake differenzieren möchten, macht PostgreSQL dies ziemlich einfach und schont den Geldbeutel.

Natürlich gibt es noch viel mehr überzeugende Features in PostgreSQL, aber diesen Artikel habe ich bereits vor ein paar Monaten geschrieben. Lassen Sie mich in den Kommentaren wissen, ob Sie aus anderen Gründen zu PostgreSQL migriert sind.


No