PostgreSQL har en hel del övertygande fördelar, av vilka några inte finns i något annat databashanteringssystem. Den här artikeln kommer att beskriva de som är mest intressanta för Oracle-utvecklaren som vill göra en migrering eller undersöka alternativ för ny utveckling.
För att förhindra att den här artikeln blir en annan lista med PostgreSQL-funktioner kommer den att hålla sig till funktionerna som skiljer den från Oracle specifikt, och fördelarna som dessa skillnader skapar.
Federation vs. Foreign Data Wrappers
Oracle har en funktion som heter Federation som gör att tabeller från andra databaser kan behandlas som lokal data. PostgreSQL kickar upp detta till en 11:a med främmande dataomslag. Det är fantastiskt överlägset federationssystemet, kan kopplas till allt som på distans liknar data och kostar ingenting i avgifter. Detta gör PostgreSQL till en fantastisk ETL-plattform, även om allt du använder den till är dataintag.
plSQL vs. allt annat
Oracle har ett inbyggt programmeringsspråk som heter plSQL. PostgreSQL har någonstans runt 80 eller så. Verkligen. Tilläggssystemet för PostgreSQL används för att skapa procedurspråk som plugin-program, och det finns bindningar för nästan alla språk du kan tänka dig. Och om det inte finns det kan du alltid följa med Mark Wong för hur du gör ett omslag till din personliga favorit.
Applikationsprogrammering
Oracle tillhandahåller ett applikations-API för att kommunicera med databasen. PostgreSQL tillhandahåller också ett API för bekvämlighet och pålitliga språk. Produkten är dock öppen källkod, så det finns inga andra klassens utvecklingsmedborgare. Du kan komma åt allt som PostgreSQL har att erbjuda genom att inkludera rubrikfilen i ditt projekt. Gör vad du vill med den.
Internationalisering och lokalisering
Oracle tillhandahåller en globaliseringsverktygslåda. PostgreSQL är byggt från grunden för att helt förlita sig på välkända och allmänt kompatibla systemtjänster för lokalisering. Den kan använda vilken teckenkodning, sortering och teckentabell som helst som operativsystemet tillhandahåller.
Webbutveckling
Oracle erkänner förekomsten av HTML genom HTML DB. PostgreSQL stöder JSON, XML och pluggar i Javascript som en backend kodningsspråk, som du kan använda samtidigt som Java eller valfritt annat gränssnittsspråk.
Autentisering
Oracle har ett inbyggt autentiseringssystem (en nick här till Proxy Auth, som är lite mer flexibel). PostgreSQL förlitar sig på värdbaserad autentisering och SASL-protokoll för att ansluta alla autentiseringssystem som värden kan stödja, och några som ansluter direkt till PostgreSQL. Detta ger en enorm mängd möjligheter för autentisering tillsammans med potentialen att överföra autentiseringsprocessen till andra maskiner.
Utökningsbarhet
Oracle har ett plug-in-system med mestadels proprietära plug-ins. PostgreSQL har ett tilläggssystem som stöds av det allmänna samhället, med tusentals tillgängliga plugin-program.
Läs skalbarhet
Oracle har ganska bra vertikal lässkalbarhet. PostgreSQL kan skapa ett praktiskt taget obegränsat läskluster. Antalet noder begränsas endast av mängden resurser du vill kasta på det.
Kostnad
Det är svårt att slå "fri", och Oracle försöker inte ens hårt. Låt oss inse det, Oracle är bara löjligt dyrt, och de har inget emot att debitera dig igen för varje enskilt fall.
Detta är inte heller en linjär jämförelse. En av de största fördelarna med PostgreSQL är att du kan ha alla instanser du vill, utan extra kostnad. (Jag antar att det är en extra kostnad på +$0,00, eller multiplicera med $0,00, du bestämmer).
Det är inte rättvist (för PostgreSQL) att jämföra kostnaden för en enda instans av Oracle med en enda instans av PostgreSQL. När du väl smakar på friheten av gratis kommer det att vara svårt att gå tillbaka till att lägga allt i en enda instans bara för att minska kostnaderna.
Hur mycket ska en temporär databas kosta som transformerar data på vägen till lagret? Jag tror att gratis räcker. Vad sägs om en övergående databas för rapportering? Jag tar gratis för det också. Vad sägs om en som är dataintagspunkten för ETL? Gratis är bra. Jag gillar gratis. Det är väldigt, eh...befriande.
Prestanda
Nej vänta! Hör av mig på den här. Jag har redan nämnt att PostgreSQL kan skapa ett obegränsat antal noder i ett läskluster. Det kan späda ut kostnaden för en viss läsoperation till nära noll. Men det finns också ett annat sätt att PostgreSQL är mer presterande än Oracle.
Eftersom PostgreSQL inte kostar något per nod, kan du ställa in den på olika sätt för varje arbetsbelastning. Naturligtvis kan du också göra detta med Oracle, men du kommer att betala per nod för möjligheten att ställa in den på detta sätt. Så om du vill differentiera inställningsparametrarna för ditt lager från OLTP till rapportering till datasjön, gör PostgreSQL detta ganska enkelt, och fortfarande lätt för plånboken.
Naturligtvis finns det mycket mer övertygande funktioner i PostgreSQL, men jag skrev redan den artikeln för några månader sedan. Låt mig veta i kommentarerna om du har migrerat till PostgreSQL av någon annan anledning.