PostgreSQL ha alcuni vantaggi interessanti, alcuni dei quali non si trovano in nessun altro sistema di gestione di database. Questo articolo illustrerà quelli che sono più interessanti per lo sviluppatore Oracle che cerca di eseguire una migrazione o ricercare alternative per un nuovo sviluppo.
Per evitare che questo articolo diventi un altro elenco di funzionalità di PostgreSQL, si atterrà alle funzionalità che lo differenziano in modo specifico da Oracle e ai vantaggi che tali differenze creano.
Federazione e involucro di dati esteri
Oracle ha una funzione chiamata Federation che consente di trattare le tabelle di altri database come dati locali. PostgreSQL lo porta a un 11 con wrapper di dati esterni. È straordinariamente superiore al sistema della federazione, può essere agganciato a qualsiasi cosa che assomigli in remoto ai dati e non costa nulla in tasse. Questo rende PostgreSQL un'ottima piattaforma ETL, anche se tutto ciò per cui la usi è l'importazione dei dati.
plSQL vs. tutto il resto
Oracle ha un linguaggio di programmazione integrato chiamato plSQL. PostgreSQL ne ha circa 80 o giù di lì. Veramente. Il sistema di estensione di PostgreSQL viene utilizzato per creare linguaggi procedurali come plug-in e ci sono collegamenti per quasi tutti i linguaggi che ti vengono in mente. E se non c'è, puoi sempre seguire con Mark Wong come creare un involucro per il tuo preferito.
Programmazione dell'applicazione
Oracle fornisce un'API dell'applicazione per comunicare con il database. PostgreSQL fornisce anche un'API per comodità e linguaggi affidabili. Tuttavia, il prodotto è open source, quindi non ci sono cittadini di sviluppo di seconda classe. Puoi accedere a tutto ciò che PostgreSQL ha da offrire includendo il file di intestazione nel tuo progetto. Fai quello che vuoi con esso.
Internazionalizzazione e localizzazione
Oracle fornisce un toolkit per la globalizzazione. PostgreSQL è costruito da zero per basarsi completamente su servizi di sistema ben noti e ampiamente compatibili per la localizzazione. Può utilizzare qualsiasi codifica dei caratteri, confronto e tabella codici forniti dal sistema operativo.
Sviluppo Web
Oracle riconosce l'esistenza di HTML tramite HTML DB. PostgreSQL supporta nativamente JSON, XML e collega Javascript come back-end linguaggio di codifica, che puoi utilizzare contemporaneamente a Java o qualsiasi altro linguaggio front-end di tua scelta.
Autenticazione
Oracle ha un sistema di autenticazione integrato (un cenno a Proxy Auth, che è un po' più flessibile). PostgreSQL si basa sull'autenticazione basata su host e sui protocolli SASL per collegare qualsiasi sistema di autenticazione supportato dall'host e alcuni che si collegano direttamente a PostgreSQL. Ciò fornisce un'enorme gamma di possibilità di autenticazione insieme alla possibilità di scaricare il processo di autenticazione su altre macchine.
Estensibilità
Oracle ha un sistema di plug-in con plug-in per lo più proprietari. PostgreSQL ha un sistema di estensione supportato dalla comunità generale, con migliaia di plug-in disponibili.
Leggi scalabilità
Oracle ha una scalabilità di lettura verticale abbastanza buona. PostgreSQL può creare un cluster di lettura virtualmente illimitato. Il numero di nodi è limitato solo dalla quantità di risorse che vorresti impiegare.
Costo
È difficile battere "libero" e Oracle non si impegna nemmeno. Ammettiamolo, Oracle è semplicemente ridicolmente costoso e a loro non dispiace addebitarti di nuovo per ogni singola istanza.
Anche questo non è un confronto lineare. Uno dei maggiori vantaggi di PostgreSQL è che puoi avere tutte le istanze che desideri, senza costi aggiuntivi. (Immagino sia un costo aggiuntivo di +$0,00, o moltiplicalo per $0,00, decidi tu).
Non è giusto (per PostgreSQL) confrontare il costo di una singola istanza di Oracle con una singola istanza di PostgreSQL. Una volta che avrai assaporato la libertà del libero, sarà difficile tornare a concentrare tutto in un'unica istanza solo per ridurre i costi.
Quanto dovrebbe costare un database temporaneo che trasforma i dati sulla strada per il magazzino? Penso che gratis sia abbastanza. Che ne dici di un database transitorio per la segnalazione? Prenderò gratis anche per quello. Che ne dici di uno che è il punto di importazione dei dati per ETL? Gratis è buono. mi piace gratis È molto, ehm... liberatorio.
Prestazioni
Non aspettare! Ascoltami su questo. Ho già detto che PostgreSQL può creare un numero illimitato di nodi in un cluster di lettura. Ciò può diluire il costo di una particolare operazione di lettura quasi a zero. Ma c'è anche un altro modo in cui PostgreSQL è più performante di Oracle.
Poiché PostgreSQL non costa nulla per nodo, puoi ottimizzarlo in modo diverso per ogni carico di lavoro. Naturalmente, puoi farlo anche con Oracle, ma pagherai per nodo per la possibilità di sintonizzarlo in questo modo. Quindi, se vuoi differenziare i parametri di ottimizzazione per il tuo magazzino da OLTP a quelli di reporting al data lake, PostgreSQL lo rende abbastanza facile, e comunque facile per il portafoglio.
Ovviamente ci sono molte più interessanti funzionalità in PostgreSQL, ma ho già scritto quell'articolo qualche mese fa. Fammi sapere nei commenti se sei migrato a PostgreSQL per qualsiasi altro motivo.