Som du kanske vet kan du utöka PostgreSQL-funktionaliteten genom att använda PostgreSQL-tillägg. Du kan använda olika tillägg för att göra PostgreSQL som en företagsversion och tillgodose specifika behov. I den här bloggen kommer vi att se några av de mest populära tilläggen med öppen källkod i PostgreSQL och hur det kan användas för att utöka dess kapacitet.
PostgreSQL är den mest avancerade databasen med öppen källkod. Varje år släpper PostgreSQL-communityt en ny version med några nya funktioner, men det finns många funktioner utvecklade med tillägg som kan användas för ett visst användningsfall.
Vissa av dessa tillägg är mycket kraftfulla och populära för att bygga en PostgreSQL-miljö av företagsklass.
Pg_stat_statements
Modulen pg_stat_statements tillhandahåller ett sätt att spåra exekveringsstatistik för alla SQL-satser som exekveras av en PostgreSQL-server. När modulen pg_stat_statements är laddad spårar den statistik över alla databaser på servern. Statistiken som samlas in av modulen pg_stat_statements görs tillgänglig via en vy som heter pg_stat_statements. Du kan kontrollera mer information om pg_stat_statements funktioner och konfigurationsparameter här.
PostGIS
PostGIS är ett tillägg till PostgreSQL-databassystemet som gör att GIS-objekt (Geographic Information Systems) kan lagras i databasen. Det inkluderar stöd för GiST-baserade R-Tree rumsliga index och funktioner för analys och bearbetning av GIS-objekt.
PostGIS används för rumsliga och geografiska objekt för PostgreSQL. PostGIS lägger till typer (geometri, geografi, raster etc) till PostgreSQL-databasen. PostGIS lägger också till funktioner, operatorer och indexförbättringar som gäller för dessa rumsliga typer. Du kan kontrollera installationsmetoden här.
Postgres_fdw
Postgres_fdw-modulen tillhandahåller främmande dataomslag postgres_fdw, som kan användas för att komma åt data som lagras i en extern PostgreSQL-databasservrar. När det finns två PostgreSQL-databaser hänvisar postgres_fdw till tabellen för den andra databasen från en databas. När du väl har definierat UTLÄNDLIG TABELL kan du göra SELECT, INSERT, UPDATE, DELETE som en lokal databas.
Funktionaliteten som tillhandahålls av postgres_fdw-modulen överlappar väsentligen funktionaliteten hos den äldre dblink-modulen. Men postgres_fdw-modulen ger mer transparent och standardkompatibel syntax för åtkomst till fjärrtabeller, och den kan ge bättre prestanda i många fall.
Det huvudsakliga användningsfallet för de främmande tabellerna är att göra data tillgänglig för system utan att replikera eller duplicera den. Det finns till och med enkla implementeringar av sharding med FDW, eftersom data i de andra shards kan vara tillgängliga för frågor via FDW.
I Oracle kan du hämta data från fjärrdatabastabeller med hjälp av DBLinks men den största skillnaden mellan DBLinks och FDW är att FDW kan behålla metadata eller tabelldefinitioner om främmande tabeller lokalt.
Mysql_fdw
Mysql_fdw är en PostgreSQL-tillägg som implementerar en Foreign Data Wrapper (FDW) för MySQL. Mysql_fdw-modulen underlättar användningen av PostgreSQL-servern som klient för MySQL Server, vilket innebär att den sedan kan hämta data från MySQL-databasen som klient. För närvarande underhåller EnterpriseDB denna modul på github.
Den tidigare versionen av mysql_fdw stöddes endast skrivskyddad, men den senaste versionen ger skrivförmågan. Användaren kan nu utfärda infoga, uppdatera och ta bort uttalanden för de främmande tabellerna med hjälp av mysql_fdw. Den använder casting-mekanismen av PostgreSQL-typ för att tillhandahålla motsatt typcasting mellan MySQL- och PostgreSQL-datatyper.
Hstore
hstore-modulen implementerar hstore-datatyp för att lagra nyckel-värdepar i ett enda värde i PostgreSQL. Datatypen hstore är mycket användbar i många användningsfall, till exempel semistrukturerad data eller rader med många attribut som sällan efterfrågas. Observera att nycklar och värden bara är textsträngar.
Innan du arbetar med hstore-datatypen måste du skapa hstore-tillägget som laddar bidragsmodulen till din PostgreSQL-instans.
Pgaudit
pgAudit är en PostgreSQL Audit Extension som tillhandahåller detaljerad sessions- och/eller objektgranskningsloggning via PostgreSQL-standardloggningsfunktionen.
Huvudmålet med pgAudit-modulen är att ge PostgreSQL-användare möjligheten att producera revisionsloggar som ofta krävs för att uppfylla statliga, finansiella eller ISO-certifieringar.
I allmänhet är en revision en officiell inspektion av en individs eller organisations räkenskaper, vanligtvis av ett oberoende organ. Informationen som samlas in av pgAudit-modulen kallas korrekt för en revisionsspår eller revisionslogg.
pgAudit-modulen utvecklades för att stödja PostgreSQL 9.5 och senare versioner.
Sessionsrevisionsloggning från pgAudit-modulen ger detaljerade loggar över alla uttalanden som exekveras av en användare i backend. Du kan kontrollera mer detaljer, konfiguration och hur du installerar och använder den i PostgreSQL här.
Orafce
Orafce är en modul som implementerar Oracle-kompatibla funktioner, datatyper och paket. Detta är ett verktyg med öppen källkod med BSD-licens så vem som helst kan använda det här verktyget. Den här modulen är mycket användbar i Oracle till PostgreSQL-migreringsuppgiften, den har många Oracle-funktioner implementerade i PostgreSQL.
Applikationer använder vanligtvis dessa funktioner med flera förekomster. Du kan minska ändringskostnaden för SQL genom att använda det här verktyget. Du kan kontrollera hur du migrerar från Oracle till PostgreSQL-bloggen.
Alla funktioner och paket är korrekt implementerade och det är väl testat.
Några av funktionerna är:
- Dbms_output
- Dbms_random
- utl_file – filsystemrelaterade funktioner
- Dbms_pipe och dbms_alert
- PLVdate,PLVstr, PLVchr
- Oracle-kompatibel DATE-datatyp och funktioner som ADD_MONTHS, LAST_DAY, NEXT_DAY och så vidare.
- NVL-funktion
- SUBSTR och SUBSTRB-funktion
- Stöd för VARCHAR2 och NVARCHAR2
- TO_DATE()
Pg_bulkload
Pg_bulkload-modulen ger höghastighetsdataladdningskapacitet till PostgreSQL-användare. pg_bulkload-modulen är designad för att ladda en enorm mängd data till en databas. Du kan ladda data till tabeller förbi PostgreSQL delade buffertar. pg_bulkload-modulen har också några ETL-funktioner som validering av indata och datatransformation med filterfunktioner.
Det ursprungliga målet för modulen pg_bulkload var ett snabbare alternativ till COPY-kommandot i PostgreSQL.
Pg_bulkload-modulen utvecklas och underhålls av NTT OSS Center.
VIKTIG ANMÄRKNING:Under strömmande replikeringsmiljö i PostgreSQL fungerar inte modulen pg_bulkload korrekt. Se här för mer information.
Pgstattuple
Modulen pgstattuple tillhandahåller olika funktioner för att få statistik på tuppelnivå i PostgresQL. Funktionen i modulen pgstattuple returnerar en relations fysiska längd, procentandelen "döda" tupler och annan information. Detta kan vara till hjälp för användare att avgöra om vakuum är nödvändigt eller inte. Argumentet till funktionen är målrelationens namn (valfritt schemakvalificerat) eller OID.
Pg_trgm
pg_trgm är ett PostgreSQL-tillägg som ger enkel fuzzy strängmatchning i PostgreSQL. Dess operativa och konceptuella omkostnader är mycket lägre än PostgreSQL fulltextsökning eller en separat sökmotor.
Ett trigram eller trigraf är en grupp av tre på varandra följande tecken hämtade från en sträng. Du kan mäta likheten mellan två strängar genom att räkna antalet trigram de delar. Denna enkla idé med trigram visar sig vara mycket effektiv för att mäta likheten mellan ord på många naturliga språk.
I allmänhet kan pg_trgm-modulen hjälpa när:
- Du behöver suddig skiftlägesokänslig strängmatchning i PostgreSQL.
- Du vill snabba upp LIKE, ILIKE, ~ eller ~* i PostgreSQL.
- Du vill söka efter mönster som inte är vänsterförankrade (t.ex. %john%). Sådana mönster stöds inte av B-tree-index i PostgreSQL.
Ovanstående lista med moduler/tillägg är mycket användbara för att utöka PostgreSQL-kapaciteten. Det finns några fler tillägg som inte ingår i bloggen men det är mycket användbart att utöka PostgreSQL-funktionaliteten. Dessa är följande.
- Språktillägg:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh etc.
- Cstore_fdw
- Mongo_fdw
- HypoPG
- Tds_fdw
- Plprofiler
Slutsats
Det finns många tillägg i tillägg som stöds av PostgreSQL-gemenskapen och vissa tillägg från tredje part, alla används för ett visst användningsfall. Du kan utöka PostgreSQL-kapacitet eller funktionalitet genom att använda dessa moduler.