sql >> Databáze >  >> RDS >> PostgreSQL

Deset způsobů, jak rozšířit funkčnost PostgreSQL

Jak možná víte, funkčnost PostgreSQL můžete rozšířit pomocí rozšíření PostgreSQL. Můžete použít různá rozšíření, abyste PostgreSQL udělali jako podnikovou verzi a řešili specifické potřeby. V tomto blogu uvidíme některá z nejpopulárnějších open source rozšíření v PostgreSQL a jak je lze použít k rozšíření jeho možností.

PostgreSQL je nejpokročilejší open source databáze. Každý rok vydává komunita PostgreSQL novou verzi s některými novými funkcemi, ale existuje mnoho funkcí vyvinutých pomocí rozšíření, která lze použít pro konkrétní případ použití.

Některá z těchto rozšíření jsou velmi výkonná a oblíbená pro vytvoření podnikového prostředí PostgreSQL.

Pg_stat_statements

Modul pg_stat_statements poskytuje prostředky pro sledování statistik provádění všech SQL příkazů prováděných serverem PostgreSQL. Když je modul pg_stat_statements načten, sleduje statistiky napříč všemi databázemi serveru. Statistiky shromážděné modulem pg_stat_statements jsou zpřístupněny prostřednictvím pohledu s názvem pg_stat_statements. Více podrobností o funkcích pg_stat_statements a konfiguračním parametru můžete zkontrolovat zde.

PostGIS

PostGIS je rozšířením databázového systému PostgreSQL, které umožňuje ukládat do databáze objekty GIS (Geographic Information Systems). Zahrnuje podporu pro prostorové indexy R-Tree založené na GiST a funkce pro analýzu a zpracování objektů GIS.

PostGIS se používá pro prostorové a geografické objekty pro PostgreSQL. PostGIS přidává typy (geometrie, geografie, rastr atd.) do databáze PostgreSQL. PostGIS také přidává funkce, operátory a vylepšení indexů, které se vztahují na tyto prostorové typy. Způsob instalace můžete zkontrolovat zde.

Postgres_fdw

Modul postgres_fdw poskytuje obal cizích dat postgres_fdw, který lze použít pro přístup k datům uloženým na externích databázových serverech PostgreSQL. Pokud existují dvě databáze PostgreSQL, postgres_fdw odkazuje na tabulku druhé databáze z jedné databáze. Jakmile definujete FOREIGN TABLE, můžete provádět SELECT, INSERT, UPDATE, DELETE jako místní databázi.

Funkce poskytované modulem postgres_fdw se podstatně překrývají s funkcemi staršího modulu dblink. Modul postgres_fdw však poskytuje transparentnější a standardům vyhovující syntaxi pro přístup ke vzdáleným tabulkám a v mnoha případech může poskytnout lepší výkon.

Hlavním případem použití cizích tabulek je zpřístupnění dat systémům bez jejich replikace nebo duplikace. Existují dokonce jednoduché implementace shardingu pomocí FDW, protože data v ostatních shardech mohou být dostupná pro dotazy prostřednictvím FDW.

V Oracle můžete získat data ze vzdálených databázových tabulek pomocí DBLinks, ale hlavní rozdíl mezi DBLinks a FDW je v tom, že FDW může lokálně udržovat metadata nebo definici tabulky o cizí tabulce.

Mysql_fdw

Mysql_fdw je rozšíření PostgreSQL implementující Foreign Data Wrapper (FDW) pro MySQL. Modul Mysql_fdw usnadňuje použití PostgreSQL serveru jako klienta pro MySQL Server, což znamená, že pak může načítat data z MySQL databáze jako klient. V současné době EnterpriseDB udržuje tento modul na githubu.

Předchozí verze mysql_fdw byla podporována pouze pro čtení, ale nejnovější verze poskytuje možnost zápisu. Uživatel nyní může zadávat příkazy insert, update a delete pro cizí tabulky pomocí mysql_fdw. Využívá mechanismus přetypování typu PostgreSQL k zajištění opačného přetypování mezi datovými typy MySQL a PostgreSQL.

Hstore

Modul hstore implementuje datový typ hstore pro ukládání párů klíč-hodnota v jediné hodnotě v PostgreSQL. Datový typ hstore je velmi užitečný v mnoha případech použití, jako jsou polostrukturovaná data nebo řádky s mnoha atributy, které jsou zřídka dotazovány. Všimněte si, že klíče a hodnoty jsou pouze textové řetězce.

Než začnete pracovat s datovým typem hstore, musíte vytvořit rozšíření hstore, které načte modul contrib do vaší instance PostgreSQL.

Pgaudit

pgAudit je rozšíření PostgreSQL Audit Extension, které poskytuje podrobné protokolování auditu relace a/nebo objektu prostřednictvím standardního protokolovacího zařízení PostgreSQL.

Hlavním cílem modulu pgAudit je poskytnout uživatelům PostgreSQL možnost vytvářet protokoly auditu, které jsou často vyžadovány pro splnění vládních, finančních nebo ISO certifikací.

Obecně platí, že audit je oficiální kontrola účtů jednotlivce nebo organizace, obvykle nezávislým orgánem. Informace shromážděné modulem pgAudit se správně nazývají audit trail nebo audit log.

Modul pgAudit byl vyvinut pro podporu PostgreSQL 9.5 a vyšší verze.

Protokolování auditu relace z modulu pgAudit poskytuje podrobné protokoly všech příkazů provedených uživatelem v backendu. Další podrobnosti, konfiguraci a způsob instalace a použití v PostgreSQL můžete zkontrolovat zde.

Orafce

Orafce je modul, který implementuje funkce, datové typy a balíčky kompatibilní s Oracle. Jedná se o open source nástroj s licencí BSD, takže tento nástroj může používat kdokoli. Tento modul je velmi užitečný v úloze migrace Oracle na PostgreSQL, má mnoho funkcí Oracle implementovaných v PostgreSQL.

Aplikace obvykle používají tyto funkce s více výskyty. Pomocí tohoto nástroje můžete snížit náklady na úpravy SQL. Můžete zkontrolovat, jak migrovat z blogu Oracle na PostgreSQL.

Všechny funkce a balíčky jsou implementovány správně a je to dobře otestováno.

Některé z funkcí jsou:

  • Dbms_output
  • Dbms_random
  • utl_file – funkce související se souborovým systémem
  • Dbms_pipe a dbms_alert
  • PLVdate,PLVstr, PLVchr
  • Datový typ a funkce DATE kompatibilní s Oracle, jako ADD_MONTHS, LAST_DAY, NEXT_DAY a tak dále.
  • Funkce NVL
  • Funkce SUBSTR a SUBSTRB
  • Podpora VARCHAR2 a NVARCHAR2
  • TO_DATE()
Stáhněte si Whitepaper Today Správa a automatizace PostgreSQL s ClusterControlZjistěte, co potřebujete vědět k nasazení, monitorování, správě a škálování PostgreSQLStáhněte si Whitepaper

Pg_bulkload

Modul Pg_bulkload poskytuje uživatelům PostgreSQL možnost vysokorychlostního načítání dat. Modul pg_bulkload je navržen pro načtení velkého množství dat do databáze. Data můžete načíst do tabulky vynecháním sdílených vyrovnávacích pamětí PostgreSQL. Modul pg_bulkload má také některé funkce ETL, jako je validace vstupních dat a transformace dat pomocí funkcí filtrování.

Původním cílem modulu pg_bulkload byla rychlejší alternativa příkazu COPY v PostgreSQL.

Modul Pg_bulkload vyvíjí a spravuje NTT OSS Center.

DŮLEŽITÁ POZNÁMKA:V prostředí streamingové replikace v PostgreSQL modul pg_bulkload nefunguje správně. Další podrobnosti naleznete zde.

Pgstattuple

Modul pgstattuple poskytuje různé funkce pro získání statistik n-tice v PostgresQL. Funkce v modulu pgstattuple vrací fyzickou délku vztahu, procento „mrtvých“ n-tic a další informace. To může být užitečné pro uživatele, aby zjistili, zda je vakuum nutné nebo ne. Argumentem funkce je název cílového vztahu (volitelně kvalifikovaný pro schéma) nebo OID.

Pg_trgm

pg_trgm je rozšíření PostgreSQL poskytující jednoduché porovnávání fuzzy řetězců v PostgreSQL. Jeho provozní a koncepční režie je mnohem nižší než u fulltextového vyhledávání PostgreSQL nebo u samostatného vyhledávače.

Trigram nebo trigraf je skupina tří po sobě jdoucích znaků převzatých z řetězce. Podobnost dvou řetězců můžete měřit tak, že spočítáte počet trigramů, které sdílejí. Tato jednoduchá myšlenka trigramu se ukazuje jako velmi účinná pro měření podobnosti slov v mnoha přirozených jazycích.

Obecně může modul pg_trgm pomoci, když:

  • Potřebujete v PostgreSQL párování řetězců bez rozlišování malých a velkých písmen.
  • Chcete zrychlit LIKE, ILIKE, ~ nebo ~* v PostgreSQL.
  • Chcete hledat vzory, které nejsou ukotveny vlevo (např. %john%). Takové vzory nejsou podporovány indexy B-stromu v PostgreSQL.

Výše uvedený seznam modulů/rozšíření je velmi užitečný pro rozšíření schopností PostgreSQL. Existuje několik dalších rozšíření, která nejsou součástí blogu, ale je velmi užitečné rozšířit funkcionalitu PostgreSQL. Jsou to následující.

  • Rozšíření jazyka:PL/Python, PL/Perl, PL/R, PL/v8, PL/sh atd.
  • Cstore_fdw
  • Mongo_fdw
  • HypoPG
  • Tds_fdw
  • Plprofiler

Závěr

Existuje mnoho rozšíření v komunitě podporovaných rozšířeních PostgreSQL a některých rozšířeních třetích stran, všechna se používají pro konkrétní případ použití. Pomocí těchto modulů můžete rozšířit možnosti PostgreSQL.


  1. Jak zřetězit řetězce v SQL

  2. Regulární výrazy Oracle. Nebezpečný rozsah

  3. Jak převést čas na časové pásmo zařízení iPhone?

  4. Ztratilo se připojení k serveru MySQL při „čtení počátečního komunikačního paketu“, systémová chyba:0