PostgreSQL heeft nogal wat overtuigende voordelen, waarvan sommige in geen enkel ander databasebeheersysteem te vinden zijn. Dit artikel schetst degene die het meest interessant zijn voor de Oracle-ontwikkelaar die een migratie wil doen of alternatieven voor nieuwe ontwikkeling wil onderzoeken.
Om te voorkomen dat dit artikel een nieuwe lijst met PostgreSQL-functies wordt, blijft het bij de functies die het specifiek onderscheiden van Oracle en de voordelen die deze verschillen opleveren.
Federatie versus Foreign Data Wrappers
Oracle heeft een functie genaamd Federatie waarmee tabellen uit andere databases als lokale gegevens kunnen worden behandeld. PostgreSQL schopt dit tot een 11 met buitenlandse datawrappers. Het is fantastisch superieur aan het federatiesysteem, kan worden aangesloten op alles dat op afstand lijkt op gegevens en kost niets. Dit maakt PostgreSQL een geweldig ETL-platform, zelfs als je het alleen voor gegevensopname gebruikt.
plSQL versus alle andere
Oracle heeft een ingebouwde programmeertaal genaamd plSQL. PostgreSQL heeft ergens rond de 80 of zo. Echt. Het uitbreidingssysteem van PostgreSQL wordt gebruikt om proceduretalen als plug-ins te maken, en er zijn bindingen voor zowat elke taal die je maar kunt bedenken. En als dat niet het geval is, kun je altijd met Mark Wong meekijken hoe je een wikkel voor je persoonlijke favoriet kunt maken.
Applicatie programmeren
Oracle biedt een applicatie-API om met de database te communiceren. PostgreSQL biedt ook een API voor het gemak en vertrouwde talen. Het product is echter open source, dus er zijn geen tweederangs ontwikkelingsburgers. U hebt toegang tot alles wat PostgreSQL te bieden heeft door het headerbestand in uw project op te nemen. Doe ermee wat je wilt.
Internationalisering en lokalisatie
Oracle biedt een toolkit voor globalisering. PostgreSQL is vanaf de grond af opgebouwd om volledig te kunnen vertrouwen op bekende en algemeen compatibele systeemservices voor lokalisatie. Het kan elke tekencodering, sortering en codepagina gebruiken die het besturingssysteem biedt.
Webontwikkeling
Oracle erkent het bestaan van HTML via HTML DB. PostgreSQL ondersteunt standaard JSON, XML en plug-ins in Javascript als een backend coderingstaal, die u tegelijk met Java of een andere front-endtaal naar keuze kunt gebruiken.
Authenticatie
Oracle heeft een ingebouwd authenticatiesysteem (een knipoog naar Proxy Auth, dat is wat flexibeler). PostgreSQL vertrouwt op de Host Based Authentication- en SASL-protocollen om elk authenticatiesysteem aan te sluiten dat de host kan ondersteunen, en een paar die rechtstreeks op PostgreSQL kunnen worden aangesloten. Dit biedt een enorm scala aan authenticatiemogelijkheden, samen met de mogelijkheid om het authenticatieproces over te hevelen naar andere machines.
Uitbreidbaarheid
Oracle heeft een plug-in systeem met voornamelijk propriëtaire plug-ins. PostgreSQL heeft een uitbreidingssysteem dat wordt ondersteund door de algemene gemeenschap, met duizenden beschikbare plug-ins.
Lees Schaalbaarheid
Oracle heeft een redelijk goede verticale leesschaalbaarheid. PostgreSQL kan een vrijwel onbeperkt leescluster maken. Het aantal knooppunten wordt alleen beperkt door de hoeveelheid middelen die u er naar toe wilt gooien.
Kosten
Het is moeilijk om "gratis" te verslaan, en Oracle doet niet eens zijn best. Laten we eerlijk zijn, Oracle is gewoon belachelijk duur, en ze vinden het niet erg om u voor elke afzonderlijke instantie opnieuw in rekening te brengen.
Ook dit is geen lineaire vergelijking. Een van de grootste voordelen van PostgreSQL is dat u alle instances kunt hebben die u wilt, zonder extra kosten. (Ik denk dat het een extra kost is van +$ 0,00, of vermenigvuldig met $ 0,00, u beslist).
Het is niet eerlijk (tegenover PostgreSQL) om de kosten van een enkele instantie van Oracle te vergelijken met een enkele instantie van PostgreSQL. Als je eenmaal de vrijheid van gratis hebt geproefd, zal het moeilijk zijn om terug te gaan naar het jammen van alles in een enkele instantie alleen maar om de kosten te verlagen.
Hoeveel moet een tijdelijke database kosten die gegevens op weg naar het magazijn transformeert? Ik denk dat gratis ongeveer genoeg is. Wat dacht u van een tijdelijke database voor rapportage? Ik neem daar ook gratis voor. Wat dacht je van een die het gegevensopnamepunt voor ETL is? Gratis is goed. Ik hou van gratis. Het is heel, eh... bevrijdend.
Prestaties
Nee wacht! Hoor me uit over deze. Ik heb al gezegd dat PostgreSQL een onbeperkt aantal knooppunten in een leescluster kan maken. Dat kan de kosten van een bepaalde leesbewerking tot bijna nul doen dalen. Maar er is ook een andere manier waarop PostgreSQL beter presteert dan Oracle.
Omdat PostgreSQL niets per node kost, kun je het voor elke workload anders afstemmen. Natuurlijk kun je dit ook met Oracle doen, maar je betaalt per node voor de mogelijkheid om het op deze manier af te stemmen. Dus als u de afstemmingsparameters voor uw magazijn wilt differentiëren naar OLTP en rapportage aan het datameer, maakt PostgreSQL dit vrij eenvoudig en toch gemakkelijk voor de portemonnee.
Natuurlijk zijn er veel meer aantrekkelijke functies in PostgreSQL, maar dat artikel schreef ik een paar maanden geleden al. Laat het me weten in de reacties als je om een andere reden naar PostgreSQL bent gemigreerd.