sql >> Database teknologi >  >> RDS >> PostgreSQL

Ti måder at udvide funktionaliteten af ​​PostgreSQL

Som du måske ved, kan du udvide PostgreSQL-funktionaliteten ved at bruge PostgreSQL-udvidelser. Du kan bruge forskellige udvidelser til at gøre PostgreSQL til en virksomhedsversion og imødekomme specifikke behov. I denne blog vil vi se nogle af de mest populære open source-udvidelser i PostgreSQL, og hvordan det kan bruges til at udvide dets muligheder.

PostgreSQL er den mest avancerede open source-database. Hvert år udgiver PostgreSQL-fællesskabet en ny version med nogle nye funktioner, men der er mange funktioner, der er udviklet ved hjælp af udvidelser, som kan bruges til en bestemt brug.

Nogle af disse udvidelser er meget kraftfulde og populære til at bygge et PostgreSQL-miljø i virksomhedskvalitet.

Pg_stat_statements

Modulet pg_stat_statements giver et middel til at spore eksekveringsstatistikker for alle SQL-sætninger, der udføres af en PostgreSQL-server. Når modulet pg_stat_statements er indlæst, sporer det statistik på tværs af alle serverens databaser. Statistikken indsamlet af modulet pg_stat_statements gøres tilgængelig via en visning med navnet pg_stat_statements. Du kan tjekke flere detaljer om pg_stat_statements funktioner og konfigurationsparameter her.

PostGIS

PostGIS er en udvidelse til PostgreSQL-databasesystemet, som gør det muligt at lagre GIS-objekter (Geographic Information Systems) i databasen. Det inkluderer understøttelse af GiST-baserede R-Tree rumlige indekser og funktioner til analyse og behandling af GIS-objekter.

PostGIS bruges til rumlige og geografiske objekter til PostgreSQL. PostGIS tilføjer typer (geometri, geografi, raster osv.) til PostgreSQL-databasen. PostGIS tilføjer også funktioner, operatorer og indeksforbedringer, der gælder for disse rumlige typer. Du kan tjekke installationsmetoden her.

Postgres_fdw

Postgres_fdw-modulet giver udenlandsk-data-indpakningen postgres_fdw, som kan bruges til at få adgang til data, der er gemt på en ekstern PostgreSQL-databaseserver. Når der er to PostgreSQL-databaser, refererer postgres_fdw til tabellen for den anden database fra en database. Når du har defineret UDENLANDSKE TABEL, kan du gøre SELECT, INSERT, UPDATE, DELETE som en lokal database.

Funktionaliteten leveret af postgres_fdw-modulet overlapper væsentligt med funktionaliteten af ​​det ældre dblink-modul. Men postgres_fdw-modulet giver mere gennemsigtig og standard-kompatibel syntaks til at få adgang til fjerntabeller, og det kan give bedre ydeevne i mange tilfælde.

Hovedanvendelsen af ​​de udenlandske tabeller er at gøre dataene tilgængelige for systemer uden at replikere eller duplikere dem. Der er endda simple implementeringer af sharding ved hjælp af FDW, fordi data i de andre shards kan være tilgængelige for forespørgsler gennem FDW'er.

I Oracle kan du hente data fra eksterne databasetabeller ved hjælp af DBLinks, men hovedforskellen mellem DBLinks og FDW er, at FDW kan vedligeholde metadataene eller tabeldefinitionen om fremmed tabel lokalt.

Mysql_fdw

Mysql_fdw er en PostgreSQL-udvidelse implementerer en Foreign Data Wrapper (FDW) til MySQL. Mysql_fdw-modulet letter brugen af ​​PostgreSQL-serveren som klient til MySQL Server, hvilket betyder, at den derefter kan hente data fra MySQL-databasen som klient. I øjeblikket vedligeholder EnterpriseDB dette modul på github.

Den tidligere version af mysql_fdw blev kun understøttet skrivebeskyttet, men den seneste version giver skriveevnen. Brugeren kan nu udstede indsæt, opdatere og slette sætninger for de fremmede tabeller ved hjælp af mysql_fdw. Den bruger casting-mekanismen af ​​PostgreSQL-typen til at levere modsat typecasting mellem MySQL- og PostgreSQL-datatyper.

Hstore

hstore-modulet implementerer hstore-datatypen til lagring af nøgle-værdi-par i en enkelt værdi i PostgreSQL. Datatypen hstore er meget nyttig i mange brugssager, såsom semistrukturerede data eller rækker med mange attributter, som sjældent bliver forespurgt. Bemærk, at nøgler og værdier kun er tekststrenge.

Før du arbejder med hstore-datatypen, skal du oprette hstore-udvidelsen, som indlæser bidragsmodulet til din PostgreSQL-instans.

Pgaudit

pgAudit er en PostgreSQL Audit Extension, som giver detaljeret sessions- og/eller objektauditlogning via PostgreSQL-standardlogningsfaciliteten.

Hovedmålet med pgAudit-modulet er at give PostgreSQL-brugere mulighed for at producere revisionslogfiler, der ofte kræves for at overholde offentlige, finansielle eller ISO-certificeringer.

Generelt er en revision en officiel inspektion af en persons eller organisations regnskaber, typisk af et uafhængigt organ. Informationen indsamlet af pgAudit-modulet kaldes korrekt et revisionsspor eller en revisionslog.

pgAudit-modulet blev udviklet til at understøtte PostgreSQL 9.5 og nyere versioner.

Sessionsrevisionslogning fra pgAudit-modulet giver detaljerede logfiler over alle udsagn udført af en bruger i backend. Du kan tjekke flere detaljer, konfiguration og hvordan du installerer og bruger det i PostgreSQL her.

Orafce

Orafce er et modul, som implementerer Oracle-kompatible funktioner, datatyper og pakker. Dette er et open source-værktøj med BSD-licens, så alle kan bruge dette værktøj. Dette modul er meget nyttigt i Oracle til PostgreSQL-migreringsopgave, det har mange Oracle-funktioner implementeret i PostgreSQL.

Programmer bruger normalt disse funktioner med flere forekomster. Du kan reducere ændringsomkostningerne for SQL ved at bruge dette værktøj. Du kan tjekke, hvordan du migrerer fra Oracle til PostgreSQL-bloggen.

Alle funktioner og pakker er implementeret korrekt, og det er gennemtestet.

Nogle af funktionerne er:

  • Dbms_output
  • Dbms_random
  • utl_file – filsystemrelaterede funktioner
  • Dbms_pipe og dbms_alert
  • PLVdate,PLVstr, PLVchr
  • Oracle-kompatibel DATE-datatype og funktioner som ADD_MONTHS, LAST_DAY, NEXT_DAY og så videre.
  • NVL-funktion
  • SUBSTR- og SUBSTRB-funktion
  • VARCHAR2- og NVARCHAR2-understøttelse
  • TO_DATE()
Download Whitepaper Today PostgreSQL Management &Automation med ClusterControlFå flere oplysninger om, hvad du skal vide for at implementere, overvåge, administrere og skalere PostgreSQLDownload Whitepaper

Pg_bulkload

Pg_bulkload-modulet giver mulighed for højhastighedsdataindlæsning til PostgreSQL-brugere. pg_bulkload-modulet er designet til at indlæse en enorm mængde data til en database. Du kan indlæse dataene til tabellen ved at omgå PostgreSQL delte buffere. pg_bulkload-modulet har også nogle ETL-funktioner som inputdatavalidering og datatransformation med filterfunktioner.

Det oprindelige mål med pg_bulkload-modulet var et hurtigere alternativ til COPY-kommando i PostgreSQL.

Pg_bulkload-modulet er udviklet og vedligeholdt af NTT OSS Center.

VIGTIG BEMÆRK:Under streaming-replikeringsmiljø i PostgreSQL fungerer pg_bulkload-modulet ikke korrekt. Se her for flere detaljer.

Pgstattuple

pgstattuple-modulet giver forskellige funktioner til at opnå statistik på tuple-niveau i PostgresQL. Funktionen i pgstattuple-modulet returnerer en relations fysiske længde, procentdel af "døde" tupler og anden info. Dette kan være nyttigt for brugerne til at afgøre, om vakuum er nødvendigt eller ej. Argumentet til funktionen er målrelationens navn (valgfrit skema-kvalificeret) eller OID.

Pg_trgm

pg_trgm er en PostgreSQL-udvidelse, der giver enkel fuzzy strengmatchning i PostgreSQL. Dens operationelle og konceptuelle overhead er meget lavere end PostgreSQL fuldtekstsøgning eller en separat søgemaskine.

Et trigram eller trigraf er en gruppe af tre på hinanden følgende tegn taget fra en streng. Du kan måle ligheden mellem to strenge ved at tælle antallet af trigrammer, de deler. Denne enkle idé med trigram viser sig at være meget effektiv til at måle ligheden mellem ord på mange naturlige sprog.

Generelt kan pg_trgm-modulet hjælpe, når:

  • Du har brug for uklar tekst-ufølsom streng matchning i PostgreSQL.
  • Du vil fremskynde LIKE, ILIKE, ~ eller ~* i PostgreSQL.
  • Du vil søge efter mønstre, der ikke er venstreforankrede (f.eks. %john%). Sådanne mønstre understøttes ikke af B-tree-indekser i PostgreSQL.

Ovenstående liste over moduler/udvidelser er meget nyttige til at udvide PostgreSQL-kapaciteten. Der er nogle flere udvidelser, som ikke er inkluderet i bloggen, men det er meget nyttigt at udvide PostgreSQL-funktionaliteten. Disse er som følger.

  • Sprogudvidelser:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh osv.
  • Cstore_fdw
  • Mongo_fdw
  • HypoPG
  • Tds_fdw
  • Plprofiler

Konklusion

Der er mange udvidelser i PostgreSQL-fællesskabsunderstøttede udvidelser og nogle tredjepartsudvidelser, alle brugt til en bestemt brugssag. Du kan udvide PostgreSQL-kapaciteten eller -funktionaliteten ved at bruge disse moduler.


  1. Hvad gør anførselstegn omkring tabelnavnet helt præcist?

  2. Re-slaving af en nedbrudt MySQL-masterserver i semisynkron replikeringsopsætning

  3. Overdreven MySQL-aktivitet

  4. Forståelse af databaseniveausorteringen og virkningen af ​​at ændre den til en database